java - 将 Java 客户端与 Python 服务器连接

标签 java python sockets tcpclient

我用下面的代码创建了一个服务器 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() 可能是错误的。

最佳答案

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

data=ims.readUTF();

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

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

关于java - 将 Java 客户端与 Python 服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829036/

相关文章:

java - 使用 JsonTypeInfo WRAPPER_OBJECT 进行 Jackson 序列化

java - 通过 web xml 进行 Jersey 过滤器注册不起作用

python - 如何获取 scipy.stats 中的分布模式

python - 从 python appengine 云端点返回重复的 id

python - 服务器发送的速度快于客户端的接收速度

java - 有没有办法检查哪个程序正在连接到套接字?

C错误从流套接字读取数据包

java - 在 JFrame 内扩展 JTable

java - XPATH 仅选择第一级子级

python - 如何使用 Scrapy 抓取通过 "view more"按钮加载的项目