错误提示DictionaryEntry 指定转换无效  当从一个数字执行强制转换时候,值必需是一个小于无限大的数字。
我做的是一个多线程聊天室 哈希表是这样定义的  key存的是用户  value存放的是socket实例 Hashtable hash = new Hashtable();foreach(DictionaryEntry de in hash.Keys)
                                { 
                                    string _clientname = de.Key as string;
                                    Socket _clientsocket = de.Value as Socket;
                                    if(!_clientname.Equals(obj))
                                    {
                                        _clientsocket.Send(new byte[] { 1,2});
                                        _clientsocket.Send(Encoding .Unicode.GetBytes(tishi ));                                    }                                }

解决方案 »

  1.   

    foreach(string _clientname in hash.Keys) 

      Socket _clientsocket =(Socket) hash[_clientnamede] ; 
      if(!_clientname.Equals(obj)) 
      { 
           _clientsocket.Send(new byte[] { 1,2}); 
           _clientsocket.Send(Encoding .Unicode.GetBytes(tishi ));   } 
    }这样看看
      

  2.   

    请使用HashTable的泛型版本Dictionary
      

  3.   

    大师就是大师  不过你 给我改的代码 有点小错误 前后不一致  是把哈希表中的键值 存到 _clientname 和 这个不一样呀 Socket _clientsocket =(Socket) hash[_clientnamede] ;