| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1301 人关注过本帖
标题:socket小问题帮忙解答一下
只看楼主 加入收藏
mipeng
Rank: 2
等 级:论坛游民
帖 子:58
专家分:13
注 册:2009-4-4
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:4 
socket小问题帮忙解答一下
程序代码:
for (int i = 0; i < clientList.Count - 1; i++)
{
                            
 Socket emp = (Socket)clientName[clientList[i].ToString()];
 string sendStr = "Start#Type=AddClientID#ServerIP=#MyName=#End";
 emp.Send(Encoding.UTF8.GetBytes(sendStr));
 emp.Close();
 emp = null;

 }

执行后出现错误,指向红色的句子 说提示“无法访问已释放的对象。对象名:“””。clientList是个Arraylist类型的,clientName是hashtable类型的请帮忙解答一下。谢谢了!

[ 本帖最后由 mipeng 于 2009-10-1 18:11 编辑 ]
搜索更多相关主题的帖子: 解答 socket 
2009-10-01 17:58
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:7 
clientName是hashtable类型的???没明白

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-10-01 20:42
mipeng
Rank: 2
等 级:论坛游民
帖 子:58
专家分:13
注 册:2009-4-4
收藏
得分:0 
private ArrayList clientList = new ArrayList();
 private Hashtable clientName = new Hashtable();                    
...
...
                    case "ClientConnect":
                    {
                        clientName.Add(recCmd.MyName, temp);
                        clientList.Add(recCmd.MyName);
                        clientListBox.Items.Add(recCmd.MyName.ToString());
                        Socket tp = (Socket)clientName[recCmd.MyName];
                        tp.Send(Encoding.UTF8.GetBytes("OK"));
                        tp.Close();
                        tp = null;
                        
                        for (int i = 0; i < clientList.Count - 1; i++)
                        {
                            Socket emp = (Socket)clientName[clientList[i].ToString()];
                            string sendStr = "Start#Type=AddClientID#ServerIP=#MyName=#OtherName=#End";
                            emp.Send(Encoding.UTF8.GetBytes(sendStr));
                            emp.Close();
                            emp = null;
                        }
                        break;
                    }

case里的ok发送成功了,可是下面的for循环里就发送不了。说提示“无法访问已释放的对象。对象名:“””
2009-10-02 10:27
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
Socket emp = (Socket)clientName[clientList[i].ToString()];
这样行吗,跟踪看看emp里面是什么了
是不是还是空的

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-10-02 19:18
mipeng
Rank: 2
等 级:论坛游民
帖 子:58
专家分:13
注 册:2009-4-4
收藏
得分:0 
出错时显示,emp不是空的
2009-10-02 20:41
快速回复:socket小问题帮忙解答一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017539 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved