【发布时间】:2014-10-19 18:33:25
【问题描述】:
我在 java 中有一个客户端程序,它向 python 服务器发送消息“Hello”。
Java 代码
import java.io.*;
import java.net.*;
public class MyClient {
public static void main(String[] args) {
try{
Socket soc=new Socket("localhost",2004);
DataOutputStream dout=new DataOutputStream(soc.getOutputStream());
dout.writeUTF("Hello");
dout.flush();
dout.close();
soc.close();
}catch(Exception e){
e.printStackTrace();}
}
Python 服务器代码
import socket # Import socket module
soc = socket.socket() # Create a socket object
host = "localhost" # Get local machine name
port = 2004 # Reserve a port for your service.
soc.bind((host, port)) # Bind to the port
soc.listen(5) # Now wait for client connection.
while True:
conn, addr = soc.accept() # Establish connection with client.
print ("Got connection from",addr)
msg = conn.recv(1024)
print (msg)
if ( msg == "Hello Server" ):
print("Hii everyone")
else:
print("Go away")
问题是 java 客户端能够向 python 服务器发送 Hello 消息,但在 python 端 else 语句总是执行输出“Go away”。python version 2.7
输出:
('Got connection from', ('127.0.0.1', 25214))
Hello
Go away
【问题讨论】:
-
Python 不理解 Java 的
writeUTF()格式。只有 Java 的writeUTF()理解它。使用writeBytes()。
标签: java python sockets python-2.7 if-statement