c# - 同时在网络流上进行多发送和多接收

标签 c# multithreading sockets networkstream

我正在开发一个应用程序(Server_Client),该应用程序发送和接收消息并上传文件等等。

正在上传文件:正在将文件分割发送到服务器。

主要问题:当客户端在上载文件时发送消息时,服务器将在文件完成后读取消息。

即使我使用了线程,在上传文件时也如何发送消息,问题仍然存在。

我缺少什么,如何实现?

最佳答案

简单的多线程解决方案经常会出现问题。

  • 保留一个工作线程池,该线程将用于处理传入的请求;
  • 使用一个专用的监听器线程,监听传入的请求
  • 收到请求后,获取一个工作线程,并通过处理数据的上传对其进行任务;
  • 专用的监听器线程将返回到在同一套接字上监听

  • 这样,下一条消息将立即被监听,而不是在上一个请求的文件上传结束时被监听。

    关于c# - 同时在网络流上进行多发送和多接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832041/

    相关文章:

    c# - 为什么这个不能优化?

    c# - .Any() with Nullables - 当我期望 True 时返回 False

    c# - 为什么在重新创建 WPF DataGrid 列时 Dispatcher.BeginInvoke 不起作用?

    java GC周期性的进入几个full GC周期

    multithreading - 在 Parallel.Foreach 循环(线程)中创建组件时保持组合根

    javascript - 在 AngularJs 中使用 socket.io 进行用户更新时出现错误

    c - 具有 `addrinfo` 结构的内存管理

    c# - 如何从运行时创建的文本框中获取文本

    c++ - ##家庭是什么意思

    c# - 访问被拒绝 IIS 服务器问题