A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于振发 中级黑马   /  2013-9-28 16:16  /  1506 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 于振发 于 2013-9-30 17:39 编辑

现在有一个winform程序,有很多个winform客户端,服务端也有一个winform,是用来用来记录和监视客户端之间的通讯。现在有个问题是,winform客户端出现异常的时候,会拖死服务端的winform监视程序。有什么办法当winform客户端出现异常的时候,不会拖死服务端winform监视程序。大家多多帮忙,晒晒思路代码都行

评分

参与人数 1技术分 +1 收起 理由
陈行 + 1

查看全部评分

5 个回复

倒序浏览
try-catch 一下
回复 使用道具 举报
try
            {
                while (true)
                {
                    //接收数据
                    byte[] getbytes = new byte[1024 * 1024 * 2];
                    string sendIp = libconnect.Text;
                    int maslenth = soc.Receive(getbytes);
                    //此时是将容器里的数据全都转换掉后面加参数以获得传入的数据而不是容器里面的东西一起转换
                    string masrecive = System.Text.Encoding.Default.GetString(getbytes, 0, maslenth);
                    showMas("接收数据:" + masrecive);
                }
            }
            catch (Exception ex)
            {

                showMas(ex.Message);显示错误信息
                dicmas.Remove(soc.RemoteEndPoint.ToString());移除集合中的异常连接
                dicthred.Remove(soc.RemoteEndPoint.ToString());移除异常连接的线程
                libconnect.Items.Remove(soc.RemoteEndPoint.ToString());移除服务器端断开连接的地址
                return;
            }当客户端断开时,接收消息的方法就会抛出异常所以用try catch处理一下ok了。

评分

参与人数 1技术分 +1 收起 理由
陈行 + 1

查看全部评分

回复 使用道具 举报
这个问题,表示路过一下
回复 使用道具 举报
亲,别人给你回答了,记得设置成已解决呀。这样版主才能加分。
回复 使用道具 举报
哦啦``多谢蔡姐提醒!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马