我有一个Python服务器和一个java客户机。当一个字符串从java发送到python时,它是不完整的。示例:
Java代码发送:Helloooooooooo
在Python中接收为:
he
lloooooooo
oo
这是密码
Python服务器:
^{pr2}$Java客户端:
package server;
import java.io.*;
import java.net.*;
class Reciever_test {
public static void main(String args[]) throws Exception {
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 10000);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while(true)
{
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + "\n");
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER:" + modifiedSentence);
}
//clientSocket.close();
}
}
Java客户端: 只是改变了发送数据到服务器的方式。在
Python服务器: 我的回应方式也必须改变(使用send而不是sendall)
^{pr2}$Klaus D.说的话是徒劳的,recv保证最多等待多少数据,它可能决定在大小达到之前处理它所拥有的数据。我使用了一个简单的缓冲区,但我相信可能有更好的方法:
atexit是在程序崩溃时优雅地关闭套接字
相关问题 更多 >
编程相关推荐