c# socket怎么主动给指定客户端发送数据 在监听中客户端发送客户端接收是正常的

请教一下,c# socket怎么主动给指定客户端发送数据 在监听中客户端发送客户端接收是正常的
最新回答
几多癖性

2024-05-24 07:43:14

这个不难
1,
Dictionary<string, Socket> Channels = new Dictionary<string, Socket>();
声明这个键值对类型的字典,保存已经建立链接的套接字
里面保存的形式可以是 <"192.168.1.1",sokcet> // IP地址,该地址的套接字
2,好了,我们要向特定的客户端发送消息,可以这样
if (this.Channels.ContainsKey(“192.168.1.1”)) //先判断有没有这个键值
{
//如果有
socket mySocket = Channels["192.168.1.1"];//取出这个客户端的套接字
// 然后就可以发送了
mySocket.Send(……)
}
else
{
//该地址的客户端未建立连接
}
Dictionary的用法很简单,你可以查一下
在服务器监听后,没当新建一个连接,就把套接字加进这个字典里
当断开连接的时候相应要从字典里删除保存的这个套接字
澜小丝光

2024-05-24 00:39:52

服务器监听客户端连接的时候 你要把 连接 保存起来
List<Socket > lst=new List<Socket >();
Socket client= sc.Accept();
lst.Add(client);
然后你要给客户端发送数据 就用 lst[0].Send();lst[1].Send();lst[2].Send();.......................