【问题标题】:Sending and Receiving data in Sockets in Java在 Java 中的 Socket 中发送和接收数据
【发布时间】:2018-01-23 03:50:05
【问题描述】:

我正在尝试通过套接字读取和写入以下数据类型:字符串、整数和图像(以字节为单位)。

我从下面的回答中了解到Creating 2 streams with one socket 我不能在一个套接字中拥有多个流。

  1. 是否可以使用通用流对象来读取所有数据类型?如果是这样,我如何区分数据类型。
  2. 如果不可能有一个公共的流对象,我应该为不同的数据类型创建单独的套接字吗?

谢谢!

【问题讨论】:

  • 你检查过这个吗? stackoverflow.com/questions/28464762/…
  • 您“可以”直接序列化对象,这将为您提供“通用”包装对象的起点。或者,您需要设计一个协议来定义“标头”(包括类型和可能的可选长度),它是固定大小的,您可以先读取套接字,然后确定如何最好地处理

标签: java sockets


【解决方案1】:

是否可以使用一个通用的流对象来读取所有的数据类型?

是的,例如DataOutputStreamDataInputStream

如果是这样,我如何区分数据类型。

通过您的应用程序协议。您要么始终以相同的顺序发送相同的数据类型,要么随每条消息一起发送消息类型,以便对等方知道接下来会发生什么。

如果不可能有一个公共的流对象,我应该为不同的数据类型创建单独的套接字吗?

没有必要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多