C# 单客户端 多服务器同时收发数据

需要用C#编写TCP协议的客户端接收两个服务器传过来的文件。使用了两个Socket连接两个服务器,每一个socket都有一个单独的接收线程recmsg,多线程+阻塞模式。

现在的问题是两个服务器有可能会在同一时刻向客户端发送文件,客户端同一IP地址下从不同端口同时接收到了文件。这种情况下是否会出现冲突的情况,客户端无法判断优先从哪个端口接收数据?
如果会有冲突,那么应该采用何种方式解决这种客户端同时接收到文件的情况?

部分代码如下

private void Form1_Load(object sender, EventArgs e)
{
socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

  1. IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("192.168.2.100"), 7890);

  2. socketClient.Connect(ipe);

  3. threadClient = new Thread(RecMsg);

  4. threadClient.IsBackground = true;

  5. threadClient.Start();

  6. Message.AppendText("已经与服务端100建立连接,可以开始通信...\r\n");

  7. socketClient2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

  8. IPEndPoint ipe2 = new IPEndPoint(IPAddress.Parse("192.168.2.110"), 7890);

  9. socketClient2.Connect(ipe2);

  10. threadClient2 = new Thread(RecMs);

  11. threadClient2.IsBackground = true;

  12. threadClient2.Start();

  13. Message.AppendText("已经与服务端110建立连接,可以开始通信...\r\n");

  14. (292条消息) C# 单客户端 多服务器同时收发数据-微软技术-CSDN问答

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

南华

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值