首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建自定义二进制协议服务器?

如何创建自定义二进制协议服务器?
EN

Stack Overflow用户
提问于 2013-07-31 20:58:00
回答 2查看 1.3K关注 0票数 0

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

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

提前感谢!

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-31 21:35:59

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

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

注意:有时,当您不确定客户机和服务器之间会发生什么样的会话模式(例如,如果希望客户机和服务器首先通过TCP/IP发送数据)时,从套接字读取数据并在单独的线程中将数据写入相同的套接字也是有意义的。

票数 2
EN

Stack Overflow用户

发布于 2013-07-31 23:47:38

基本思想是java.net SocketsServerSockets,线程的组合,以及基于DataOutputDataInput设施的协议实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17980847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档