用pythons连接Java客户端

2024-04-29 11:42:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我用下一个代码制作了一个服务器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字符串()可能是错的。在


Tags: 代码服务器newclosedatasizeifbuffer
2条回答

您需要将数据分配给从流中读取的字符串:

data=ims.readUTF();

流中的toString()方法只返回对象id的表示形式,没有意义。在

http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.html#readUTF()

你是正确的,ims.toString是错误的。如果python发送的是UTF-8字符串,那么可以使用ims.readUTF()。在

相关问题 更多 >