gpt4 book ai didi

java - python客户端和java服务器之间的通信

转载 作者:太空狗 更新时间:2023-10-30 02:06:20 25 4
gpt4 key购买 nike

我的目标是将消息从 python 套接字发送到 java 套接字。我确实看过上面提到的资源。但是,我正在努力让 Python 客户端与 Java 服务器通信。主要是因为 python 中的 (End of line) 与 java 中的不同。

假设我从 python 客户端写入:消息 1:abcd 消息 2:efgh 消息 3:q(退出)

在 java 服务器上:我收到消息 1:abcdefghq 后跟异常,因为 python 客户端已从其末端关闭了套接字。

任何人都可以提出一个解决方案,以便在 java 和 python 之间进行一致的对话。

我使用的引用:http://www.prasannatech.net/2008/07/socket-programming-tutorial.html

更新:忘记补充了,我在做TCP。

我的 JAVA 代码是这样的:(服务器套接字)

String fromclient;

ServerSocket Server = new ServerSocket (5000);

System.out.println ("TCPServer Waiting for client on port 5000");

while(true)
{
Socket connected = Server.accept();
System.out.println( " THE CLIENT"+" "+ connected.getInetAddress() +":"+connected.getPort()+" IS CONNECTED ");

BufferedReader inFromClient = new BufferedReader(new InputStreamReader (connected.getInputStream()));

while ( true )
{
fromclient = inFromClient.readLine();

if ( fromclient.equals("q") || fromclient.equals("Q") )
{
connected.close();
break;
}
else
{
System.out.println( "RECIEVED:" + fromclient );
}
}
}

我的 PYTHON 代码:(客户端套接字)

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 5000))

while 1:

data = raw_input ( "SEND( TYPE q or Q to Quit):" )
if (data <> 'Q' and data <> 'q'):
client_socket.send(data)
else:
client_socket.send(data)
client_socket.close()
break;

输出::

在 PYTHON 控制台(客户端)上:

发送(键入 q 或 Q 退出):abcd(按 ENTER)

发送(键入 q 或 Q 以退出):efgh(按 ENTER)

发送(键入 q 或 Q 以退出):q(按 ENTER)

在 JAVA 控制台(服务器)上:

TCPServer 在端口 5000 上等待客户端

客户端/127.0.0.1:1335 已连接

收到:abcdefghq

最佳答案

\n追加到data的末尾:

client_socket.send(data + '\n')

关于java - python客户端和java服务器之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com