【发布时间】:2012-05-17 17:17:06
【问题描述】:
Java 客户端可以使用 TCP 连接到 C++ 服务器。 Java 客户端在 Win7 上。 C++ 服务器在 Linux 上。
问题是我无法成功地将数据发送到 C++ 服务器。 Java代码是:
public static void main (String [] args ) throws IOException {
Socket sock = new Socket("10.217.140.200",7000);
String id = "TEST";
char encoding = 'a';
ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());
oos.flush();
oos.writeObject(encoding);
在您的帮助之后,我现在使用 outputstream 并且它可以工作。记得删除ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());,否则会输出4个字符到c++服务器。
【问题讨论】:
-
您并没有真正提供足够的信息来确定问题出在哪里,但首先
oos.flush()应该在oos.writeObject()之后,而不是之前。 -
谢谢,我把 .flush() 移到最后
-
现在,我可以从java客户端向c++服务器发送数据了,奇怪的是存储的数据从第四个位置开始(不知道为什么不使用0到3个位置)。当我在 c++ 端打印接收到的数据时,打印 0 到 3 的结果是 2 ?有谁知道前四个位置是干什么用的?
-
@GregKopff 感谢您的善意通知