套接字上下文中的 Java 和二进制数据

标签 java sockets binary arrays

这里是 Java 新手。是否有任何辅助函数可以将数据进出字节数组进行序列化?我正在编写一个实现网络协议(protocol)的 Java 包。所以我必须在循环中编写一些典型的变量,例如版本(1字节)、序列号(长)和二进制数据(字节)。我如何在 Java 中执行此操作?来自 C 我正在考虑创建所需大小的字节数组,然后由于没有 memcpy() 我将 long 转换为临时字节数组,然后将其复制到实际的字节数组中。看起来效率很低,而且很容易出错。是否有一个类可以用来将参数编码和解码到字节数组?

为什么所有 Socket 类只处理 char[] 而不是 byte[]?根据定义,套接字还必须处理二进制数据。在 Java 中这是如何完成的?

我确信我缺少的是 Java 思维方式。如果有人能指点我,我将不胜感激。

编辑:我确实查看了 DataOutputStream 和 DataInputStream,但我无法将字节转换为字符串而不是 byte[],这意味着信息可能会在写入套接字的转换中丢失。

  • 帕夫

最佳答案

看看DataInputStreamDataOutputStreamObjectInputStreamObjectOutputStream。首先检查您是否可以接受数据的布局。另外,序列化。

关于套接字上下文中的 Java 和二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3382854/

相关文章:

r - R 中的 xtlogit - logit 固定效果

java - 线程中的异常 "AWT-EventQueue-0"java.lang.NumberFormatException : For input string: "11101110110100011110111011010001"

c - 按顺序从线程写入位序列

java - Collections.reverse 方法不反转条目

java - 如何维护自动连线 Web 服务的状态?

c - 使用 Unix 域套接字进行电话通话的 IPC 机制

python - 使用 PKCS#11 在 Python 中提供 SSL 连接

java - 如何用NIO设计Java服务器?

java - 使用循环打印图案

Java 更改字节码 - 不起作用