我用下一个代码制作了一个服务器python(我认为其余代码不需要):
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data
conn.send(data+'\r\n')
conn.close()
当我试图用Java客户端接收回显时,在控制台上打印时收到一条奇怪的消息:
^{pr2}$在服务器端,我收到了好消息:Hola Mundo。在
Java中的代码是:
DataInputStream ims;
String data;
s = new Socket(HOST,PORT);
oms = new DataOutputStream(s.getOutputStream());
ims = new DataInputStream(s.getInputStream());
oms.writeUTF(ms);
ims.read();
data = ims.toString();
oms.close();
ims.close();
s.close();
return data;
我认为ims.TO字符串()可能是错的。在
您需要将数据分配给从流中读取的字符串:
流中的toString()方法只返回对象id的表示形式,没有意义。在
见http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html#readUTF()
你是正确的,
ims.toString
是错误的。如果python发送的是UTF-8字符串,那么可以使用ims.readUTF()
。在相关问题 更多 >
编程相关推荐