我已经看到很多在Java中通过套接字发送序列化数据的例子,但我想要的只是发送一些简单的整数和一个字符串。而且,问题是我正在尝试将这些传达给用C语言编写的二进制文件。
那么,底线:如何在Java中的套接字上发送一些字节?
答案 0 :(得分:9)
您可以使用OutputStream提供的简单Socket 从那里你可以write个字节。
如果您愿意,也可以将此流封装在BufferedOutputStream中以获得缓冲区。
答案 1 :(得分:4)
我真的建议不要直接使用Java套接字库。我发现Netty(来自JBoss)非常容易实现并且非常强大。 Netty ChannelBuffer类提供了大量用于编写不同数据类型的选项,当然,如果您愿意,可以编写自己的编码器和解码器以在流中编写POJO。
这个页面是一个非常好的入门者 - 我能够在30分钟内使用自定义编码器和解码器制作一个相当复杂的客户端/服务器:http://docs.jboss.org/netty/3.2/guide/html/start.html。
如果你真的想使用Java套接字。套接字输出流可以包装在DataOutputStream中,允许您编写许多不同的数据类型,例如:
new DataOutputStream(socket.getOutputStream()).writeInt(5);
我希望这很有用。
答案 2 :(得分:1)
我建议您查看序列化Protocol Buffers和数据传输ZeroMQ。