我找不到任何解决方案来解决我的问题 . 我想问一下我们如何只为一个连接使用一个端口 .
这是我've tried and it works well, but I'm使用两个独立的端口进行聊天和共享:


*服务器:
1)创建一个套接字并将其绑定到端口1234进行聊天
2)创建另一个套接字并将其绑定到端口4321以共享文件

  • 我们有两个监听套接字等待客户端连接 .

*客户:
1)创建一个套接字并连接到服务器端口1234 //聊天
2)创建第二个套接字并连接到服务器//共享的端口4321

  • 对于每个客户端,我们需要两个套接字连接到服务器的两个端口 - >我们可以同时聊天和共享文件 .

问题是它看起来效率不高并且面对一些问题:
a)使用两个端口 - >要求两者都有服务器开放端口转发
b)如果我们有多个客户端同时连接到服务器,服务器将检测到两个客户端的聊天和共享套接字错误

我还发现了一个建议,即使用套接字并将标记/标记标记为传输数据,然后我们可以分离聊天和共享数据 . 但是如果客户端和服务器的缓冲区大小不同,我们每次都不能接收到完整的数据包来检测接收数据包的类型 .

使用一个端口进行聊天并同时共享的最佳方法是什么?
如果我们整合更多的服务,如流音乐,视频等 . 如何在同一端口上使用多连接?
如果我们在同一端口上使用多连接,如何在接受新客户端时检测连接类型(聊天或共享)?
谢谢,