我正在尝试实现一个 Java - Python 客户端/服务器套接字。客户端使用 Java 编写,服务器使用 Python 编写。
Java 客户端:
Python 服务器
客户端发给服务器的第一条消息已经成功传送了,但是服务器发给客户端的第二条消息没有成功传送。我使用telnet检查了一下,发现服务器发送了消息,但是客户端陷入了死锁状态,无法接收消息。我不明白为什么会这样。谢谢。
Java 客户端:
import java.io.*;
import java.net.*;
import java.lang.*;
public class client {
public static void main(String[] args) {
try{
Socket socket=new Socket("localhost",2004);
DataOutputStream dout=new DataOutputStream(socket.getOutputStream());
DataInputStream din=new DataInputStream(socket.getInputStream());
dout.writeUTF("Hello");
dout.flush();
System.out.println("send first mess");
String str = din.readUTF();//in.readLine();
System.out.println("Message"+str);
dout.close();
din.close();
socket.close();
}
catch(Exception e){
e.printStackTrace();}
}
}
Python 服务器
import socket
soc = socket.socket()
host = "localhost"
port = 2004
soc.bind((host, port))
soc.listen(5)
while True:
conn, addr = soc.accept()
print ("Got connection from",addr)
msg = conn.recv(1024)
print (msg)
print(len(msg))
if "Hello"in msg:
conn.send("bye".encode('UTF-8'))
else:
print("no message")
客户端发给服务器的第一条消息已经成功传送了,但是服务器发给客户端的第二条消息没有成功传送。我使用telnet检查了一下,发现服务器发送了消息,但是客户端陷入了死锁状态,无法接收消息。我不明白为什么会这样。谢谢。