【发布时间】: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