【问题标题】:TCP Client get unusual errorTCP 客户端出现异常错误
【发布时间】:2017-10-08 17:45:51
【问题描述】:

我用 Java 写了一个套接字客户端,用 python 写了一个服务器。我在台式机上运行虚拟机(Ubuntu),然后启动服务器。如果我在笔记本上运行客户端代码,它工作正常,我可以发送和接收数据。服务器关闭,但问题出在我的台式计算机上。我复制了相同的代码,但它不起作用。它连接,并且可以发送但不接收。我认为这是网络问题,但我没有找到解决方案。

这是我的代码

Python 服务器:

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("",9999)
s.listen(1)
sc,addr = s.accept()
recibido = sc.recv(4000000
print recibido
if (recibido == "Dante"): 
ed= "Im Cristian"
sc.sendall(ed)

Java 客户端

public static void main(String[] args) {
    try {
        String str ="Dante";
        Socket s = new Socket ("192.168.1.104",9999);
        PrintStream p= new PrintStream(s.getOutputStream());
        p.println(str);
        BufferedReader input = new BufferedReader( new InputStreamReader(s.getInputStream()));
        String st = input.readLine();
        System.out.println(""+st);


    } catch (IOException ex) {
        System.out.println("Error: "+ ex.getMessage());
        Logger.getLogger(TCPCliente.class.getName()).log(Level.SEVERE, null, ex);

    }

}

客户端出错

Error conecction reset
oct 08, 2017 2:18:15 PM tcpcliente.TCPCliente main
GRAVE: null
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:209)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.fill(BufferedReader.java:161)
    at java.io.BufferedReader.readLine(BufferedReader.java:324)
    at java.io.BufferedReader.readLine(BufferedReader.java:389)
    at tcpcliente.TCPCliente.main(TCPCliente.java:26)

防火墙可能是问题吗?

【问题讨论】:

  • 当你搜索tcp connection reset时,你发现了什么?如果您还没有尝试过,请尝试一下。
  • 对不起,我不明白你的意思是什么?当它显示错误部分时,我只需点击 tcpcliente.TCPCliente.main(TCPCliente.java:26) 的最后一行并将我发送到我的 java 客户端代码 String st = input.readLine(); 中的第 26 行@
  • 该错误实际上与您的客户端代码无关。这是一个网络问题,但很可能是连接另一端的服务器问题。你检查过那里发生了什么吗?我可以看到,您显示的 Python 代码是无效,也许它因此而停止了?
  • 是的,这就是我的想法,因为当我使用 python 服务器代码将客户端代码发送到台式机中的虚拟机时,客户端代码在我的笔记本上运行,但完全相同的客户端代码无法运行我的台式电脑

标签: java python sockets server client


【解决方案1】:

我解决了,问题太傻了,我觉得自己像个小丑,似乎在我的服务器上我的“DANTE”是大写字母,所以它永远不会响应,因为与我的客户“Dante”不匹配,对不起大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2014-08-10
    • 2012-05-16
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多