[C#] Socket编程,客户端接口
我有一个正在工作的客户端/服务器多线程程序。 我的问题是,我怎么能选择任何客户端,并从服务器发送他的数据包?[C#] Socket编程,客户端接口
回答:
我最常做的,是建立一个Client
类,它包含一个Socket
,当有一个新的传入连接,我创建了一个新的客户端,并给了他当前的服务器实例(this
),并定义了客户端套接字。
Client类:
public class Client {
public int Id;
public Socket socket;
public Server serverInstance;
public Client(Server server, Socket sock)
{
this.Id = GenerateNewUniqueId(); // Generates a unique id (you must implement it :p)
this.serverInstance = server;
this.socket = sock;
}
}
服务器接受连接:
List<Client> clients = new List<Client>(); // incoming connection
void AcceptConnection()
{
Client newClient = new Client(this, serverSocket.Accept());
clients.Add(newClient);
}
所以,如果你想发送给一个或所有客户端,你可以做这样的事情:
public void SendPacketToAll() {
foreach (Client client in this.clients)
client.socket.Send(...);
}
public void SendPacketToUserById(int id)
{
foreach (Client client in this.clients)
if (client.Id == id)
client.socket.Send(...);
}
希望它有帮助,祝你好运
以上是 [C#] Socket编程,客户端接口 的全部内容, 来源链接: utcz.com/qa/266453.html