C套接字:TCP / IP多客户端:在同一端口上聊天和传输文件

时间:2016-04-03 08:20:37

标签: sockets tcp chat port transfer

我正在编写一个C套接字程序来在多个客户端之间聊天和传输文件。关于TCP客户端服务器有很多话题,但我找不到解决问题的任何解决方案。我想问一下我们如何只为一个连接使用一个端口。
这是我尝试过的,效果很好,但我使用两个独立的端口进行聊天和分享:

*服务器:
1)创建一个套接字并将其绑定到端口1234进行聊天 2)创建另一个套接字并将其绑定到端口4321以共享文件
- >我们有两个监听套接字等待客户端连接。

*客户端:
1)创建一个套接字并连接到服务器的端口1234 //聊天
2)创建第二个套接字并连接到服务器端口4321 //共享
- >对于每个客户端,我们需要两个套接字连接到服务器的两个端口 - >我们可以同时聊天和分享文件。

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

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

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

0 个答案:

没有答案