[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

回到顶部