gpt4 book ai didi

java - 如何创建自定义二进制协议(protocol)服务器?

转载 作者:行者123 更新时间:2023-12-02 06:51:25 38 4
gpt4 key购买 nike

请告知创建自定义二进制协议(protocol)服务器的最佳解决方案是什么。服务器应通过 TCP/IP 上的二进制协议(protocol)接受来自多个设备的通信。

是否有任何现有的服务器/框架解决方案可用? IE。 Node.js适合解决这个问题吗?首选解决方案是面向 Java 的。

提前致谢!

更新:需要使用二进制协议(protocol)来减少通信数据量。协议(protocol)的任何文本格式都可能过于冗长。此外,设备的协议(protocol)已经指定。

最佳答案

我前段时间实现了这样的事情。我为此使用了两个标准 Java API:

  1. java.net 包:java.net.ServerSocket 和 java.net.Socket 应该能够满足您的大部分需求。
  2. java.concurrency 包:对于从 ServerSocket 实例接受的每个新连接 Socket,您可能希望将此连接 Socket 的处理移至另一个线程,并使用阻塞 ServerSocket.accept 开始监听下一个连接() 方法——一种生产者-消费者模式的实现。可以通过将新连接的 Socket 发布到队列中来完成,然后将其用于提供给线程池,并且该线程池中的每个线程负责实际的连接处理。

注意:有时,当您不确定客户端和服务器之间会发生哪种 session 模式(例如,如果希望它们首先通过 TCP/IP 发送数据),则从以下位置读取数据确实有意义一个 Socket 并在不同的线程中将数据写入同一个 Socket 中。

关于java - 如何创建自定义二进制协议(protocol)服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980847/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com