我目前正在研究用 C# 编写的 TCP 多线程服务器和客户端。我在 Google 上环顾四周,尝试了超过 5 个示例,但似乎没有一个可以满足所有要求。由于我不熟悉网络,所以如果有人能指出我正确的方向,我将不胜感激。
以下是我需要的要求:
- 多线程,我需要一个可以处理多个客户端的服务器,尽管这些客户端不需要相互通信。
- 连续操作,客户端连接到服务器后,需要不断地相互发送消息,直到服务器丢弃所有客户端。服务器需要识别每个客户端。客户端通常不需要自行断开与服务器的连接。
- 断线通知,谷歌上找到的大部分例子都没有这个功能,我需要服务器知道连接的客户端何时断开,这样服务器才能通知用户。
实际上我发现的最接近的例子是:http: //www.codeproject.com/Articles/22918/How-To-Use-the-SocketAsyncEventArgs-Class
但我面临的问题是消息在 Token 类中,我将所有这些类都包含在我的 Window Form Application 中,这是我的主要应用程序。客户 ID、客户状态或对客户的操作等信息将在表单中执行。我不知道如何将这些变量从 Token 类带到我的表单中。
这是另一个例子似乎可以适合我的目的: http: //www.codeproject.com/Articles/2866/Multi-threaded-NET-TCP-Server-Examples
但我不确定如何更改它,因为它阻止了我的表单显示。
感谢帮助。