C# 多个套接字在不同的线程上使用相同的端口

标签 c# multithreading sockets

我有多个线程使用多个套接字但都指向一个端口。它会工作吗?我看到一些线程说多个应用程序不能使用相同的端口,但我不确定它是否直接解决了这个问题

代码示例

       static IPEndPoint b = new IPEndPoint(IPADRESS, PORT);
       static Thread listenThread = new Thread(listen);
       static Thread sendThread = new Thread(send);

       static void listen(){
          Socket socket = new Socket;
            socket.bind(b);
          while(exit == false){

          Socket.listen(10);
           //handle Data

                }

           static void send(){
          Socket socket = new Socket;
            socket.bind(b);
          while(exit == false){

          Socket.send(msg)
                }

最佳答案

如果您在同一个端口上只有一个监听线程和一个发送线程,您就可以了。但是,如果更多,则让一个线程监听端口并将接收到的任何内容推送到队列中。其他线程应该从队列中读取。

关于C# 多个套接字在不同的线程上使用相同的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342736/

相关文章:

c# - 使用 jquery ajax 在 aspx.cs 文件中调用 webmethod

c# - 在 C# 中,如何将旧对象中的 XML 反序列化为更新后的对象并忽略丢失的 xml 元素?

Android - 来自非 UI 线程的离屏绘图

C# 画线 OnPaint() 与 CreateGraphics()

c# - 将构造函数参数传递给 Nunit 基类

ios - Swift - 在 vi​​ewDidLoad() 中完成 http 请求之前查看负载

c++ - OpenCV C++多线程提高帧率

python-2.7 - Python asyncore 与 UDP

c++ - iOS 套接字 IPv6 支持

sockets - 为什么 bind() 和 accept() 让你指定结构的大小?