【问题标题】:Conect Java client with Python server将 Java 客户端与 Python 服务器连接
【发布时间】:2015-04-24 00:18:18
【问题描述】:

我用下一个代码制作了一个服务器python(我认为其余代码没有必要):

while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "received data:", data
    conn.send(data+'\r\n')

conn.close()

当我尝试使用 Java 客户端接收回显时,在控制台上打印时收到一条奇怪的消息:

Mensaje recibido = java.io.DataInputStream@1cf2a0ef

在服务器点,我收到了很好的消息: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.toString() 可能是错误的。

【问题讨论】:

    标签: java python sockets tcpclient


    【解决方案1】:

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

    data=ims.readUTF();
    

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

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

    【讨论】:

      【解决方案2】:

      ims.toString 是错误的,你是对的。如果 python 发送一个 UTF-8 字符串,你可以使用ims.readUTF()

      【讨论】:

      • 我以为readUTF()不返回字符串,我没有看Java的文档,谢谢!
      • 它正在工作,我暂时不需要更多帮助哈哈哈谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      相关资源
      最近更新 更多