c# - 通过TCP连接到多个客户端的服务

标签 c# .net sockets tcplistener tcpserver

在线上的大多数示例都是多线程tcp服务器的示例,通过该服务器,服务器监听来自客户端的多个传入连接。

我正在寻找的是“服务器”,以启动连接。如果我有100台设备(当然,所有IP地址都不同),我的服务器将必须与每个设备建立100条单独的连接并从这些设备接收数据。

这就是我与设备建立连接的方式

_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);
_socket.SendTimeout = 2000;
_socket.ReceiveTimeout = 2000;
_socket.Connect(new IPEndPoint(IPAddress, TCPPort));

但是我想知道是否有任何组件可以满足以下要求
  • 建立与设备
  • 一样多的tcp连接
  • 通过连接
  • 接收和发送数据
  • 处理tcp超时/断开连接/etc并重新建立与IP的连接

  • 如果没有这些组件,那么有什么技巧可以帮助我做到这一点?例如,每个线程1个连接,或者如果在多个数据包中接收到数据,该如何处理?

    任何见解将不胜感激

    最佳答案

    您可以使用几种现有组件来实现所需的功能。 checkout http://www.networkcomms.nethttp://code.google.com/p/lidgren-network-gen3/

    话虽这么说,人们总是喜欢补充一点,没有什么可以阻止您按照所举的例子从头开始编写所有内容。

    免责声明:我是NetworkComms.Net的开发人员。

    关于c# - 通过TCP连接到多个客户端的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024188/

    相关文章:

    c# - 什么影响 C# PNG 无损压缩率?

    c# - WCF ServiceHost 访问权限

    c# - .Net Socket 不响应远程断开连接?

    sockets - 套接字可变的 Rust 结构字段

    c# - 从 sqlite 数据库性能初始化 c# 对象的最佳实践是什么

    c# - Cron 可观察序列

    c# - 如何在 .net 中读取具有不同层次结构的 xml 文件

    c# - 如何使用多线程处理大队列(临时文件?)

    sockets - 如何禁用setsockopt()设置的超时?

    java - 通过 DataInputStream 连续读取套接字消息的正确方法是什么?