通过套接字复用数据

时间:2013-01-14 19:51:11

标签: c++ sockets networking protocols multiplexing

基本上我正在尝试同时从同一个套接字 BUT 进行2到3次文件传输,但不会中断发送回客户端/服务器的消息。

类似于2人之间的聊天程序和3次文件传输。

我正在努力避免开放两个或更多个流。

我希望一切都是异步发生的 - 仍然在同时讲话并传输所有3个文件;不是一个接一个。

我的协议怎么样?我想不到这个。

1 个答案:

答案 0 :(得分:3)

如果您真的想自己进行数据包切换,我建议使用一个队列:将需要发送的数据包放在一端,另一端收集数据包并进行实际的电汇传输。

对于通过网络传输的数据包,您需要一种类型(文件传输或聊天),目的地(放置文件的位置或您正在聊天的人)以及实际的数据包数据。

在接收方,您需要跟踪所有收件人,聊天和文件传输。当收到目的地X的文件传输时,将其保存到文件X,如果您收到Y人的聊天消息,则将该消息发送给Y人。