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

如题所述

第1个回答  2012-01-15
这个不难
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的用法很简单,你可以查一下
在服务器监听后,没当新建一个连接,就把套接字加进这个字典里
当断开连接的时候相应要从字典里删除保存的这个套接字
第2个回答  2012-01-11
服务器监听客户端连接的时候 你要把 连接 保存起来
List<Socket > lst=new List<Socket >();
Socket client= sc.Accept();
lst.Add(client);
然后你要给客户端发送数据 就用 lst[0].Send();lst[1].Send();lst[2].Send();.......................本回答被网友采纳
相似回答