详解C#中Socket通信(四):使用哈希表管理客户端
来源:互联网 发布:国外体育直播软件 编辑:程序博客网 时间:2024/04/30 03:00
public void StartListening(){ //获取本机IP地址 IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName()); HostIP = ipHost.AddressList[0]; try { IPEndPoint iep = new IPEndPoint(HostIP, 9004); serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(iep); serverSocket.Listen(100); //如果有客户端连接进来,就加入队列 while (flag) { clientSocket = serverSocket.Accept(); if (clientSocket != null) { string str = clientSocket.RemoteEndPoint.ToString(); string[] Ipstr = str.Split(':'); string clientIp = Ipstr[0]; PVS_Client PvsClient; if (clientList.Contains(clientIp)) { PvsClient = (PVS_Client)clientList[clientIp]; PvsClient.killSelf(); } PvsClient = new PVS_Client(clientSocket); //注册断开事件 PvsClient.OnClientdisConnect += new PVS_Client.clientdisConnect(this.removeclient); //注册消息事件 PvsClient.OnclientMessage += new PVS_Client.clientMessage(this.getClientMessage); clientList.Add(clientIp, client); } } } catch (Exception e) { MessageBox.show(e.Message); }}//断开处理函数private void removeclient(object sender, EventArgs e){}//消息处理函数private void getClientMessage(object sender, EventArgs e, string message){ }
多客户端可以使用哈希表进行管理。Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.哈希表的操作主要有:
- 在哈希表中添加元素:HashtableObject.Add(key,value);
- 在哈希表中去除元素:HashtableObject.Remove(key);
- 从哈希表中移除所有元素:HashtableObject.Clear();
- 判断哈希表是否包含特定键key:HashtableObject.Contains(key);
public Hashtable clientList = new Hashtable();
服务器响应函数:
- 详解C#中Socket通信(四):使用哈希表管理客户端
- C#中Socket通信用法实例详解
- C# TCP Socket通信客户端
- C# 使用Socket实现服务器与客户端的通信
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket TCP简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# 服务端与客户端示例(Socket通信)
- C# Socket简单例子(服务器与客户端通信)
- C# Socket简单例子(服务器与客户端通信)
- C# 多线程学习(三)Socket 服务器与客户端通信
- 当前流行的智能硬件产品整理
- adb server is out of date. killing...
- 引言_基于活动状态机架构的编程方法(状态化编程思想)(Statefulization Programming Method)
- 石锅拌米饭的做法
- Linux iostat和little's law
- 详解C#中Socket通信(四):使用哈希表管理客户端
- JS添加可信站点、修改ActiveX安全设置,禁用弹出窗口阻止程序的方法
- ms sql 检索死锁进程
- struct用法深入探索
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)
- Android 提示版本更新的实现
- 在 Javascript 文件里使用 .Net MVC Razor 语法
- torque-roll-userguide
- Magento小知识