一个程序内可以同时监听两个端口,然后分别做不同的处理吗

yangyanzhao 2018-01-05 03:10:24
一个端口要绑定完成端口
另一个为普通的TCP端口
可以同时监听吗?
还有,如何辨别收到的数据来自哪个端口?
...全文
1211 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2018-01-06
  • 打赏
  • 举报
回复
可以同时监听,不需要辨别。 每个socket都可以绑定自己的dataarrival、connectrequest事件(TCP)。在开发的时候并不需要处理端口的识别,每个socket有自己的事件处理代码,只要开发的时候你自己规划好这个socket的功能就行,而不是软件在宏观上自己判断消息的接收端口,再通过不同的端口去做不同的处理。类比一下,相当于一个办事处有多个接待员,每个接待员有自己的接待方案,谁接待了,就由谁去用自己那套接待方案进行接待,而接待员本身不需要关心来人找的是哪位接待员——因为他来到我这,一定是找我的。 正常的TCP服务端工作顺序是这样:创建一个socket实例,指定端口(比如10001),开始监听,有请求了,new一个新的socket出来accept,为这个新socket绑定一个dataarrival事件的回调,有数据过来的时候调用这个过程,发送同理。UDP不一样的地方是,因为无连接,所以不需要new一个socket来专门用于通信,别的都和tcp一样。 如果软件需要有多个端口分别做不同的事,只要重复上面这个过程就行。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧