Java客户端python服务器套接字编程
我在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
你从客户那里得到’你好’。
if ( msg == "Hello" ): print("Hii everyone") else: print("Go away")
在您编写的Java代码中
dout.writeUTF("Hello");
但是Python服务器期望“Hello Server”打印“Hii Everyone”。
将Java客户端代码更改为
dout.writeUTF("Hello Server");
只需使用正确的语法。 由于您发送“Hello”,“Go away”将是您的输出。
if ( msg == "Hello Server" ): print("Hii everyone") else: print("Go away")