【问题标题】:Send data over sockets from Java program to C program通过套接字从 Java 程序向 C 程序发送数据
【发布时间】:2017-03-29 08:49:25
【问题描述】:

我正在尝试通过网络将数据从 Java 程序发送到 C 程序。 但我不知道使用哪种类型的数据。我尝试了一个字符。

这是我的 Java 代码:

DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
char c = 'c';
dos.writeChar(c);

还有我的 C 代码:

char buffer[256];
bzero(buffer, 256);
read(newsockfd, buffer, 255);
printf("Here is the message: %c\n", buffer[0]);

“这是消息”不打印任何内容。不知道buffer[0]是空还是类型不兼容。

【问题讨论】:

  • 是的,我可以使用 Json,但我只有一个 Int 所以发送。我认为仅此一点就太沉重和复杂了,不是吗?
  • 您检查错误吗? read 返回什么?
  • 怎么样:OutputStream os = sock.getOutputStream(); os.write((byte) c);
  • 读取没有错误,我检查过了
  • 我认为 DataOutputSteam 是一个用于 Java 轻松通信的 Wrapper。与其他不同语言的程序通信,最好使用最原始的流。

标签: java c sockets networking


【解决方案1】:

在java中一个char是两个字节,你可以使用java类型“​​byte”来发送一个字节。或者你必须支持Java发送的两字节字符(unicode),才能用C打印。

但我没有时间检查您的其余代码,但这可能是一个开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多