CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

碰上一个爆难的问题,问问大侠们.解决马上结贴.

楼主programbin(终极猫咪)2004-12-03 15:48:10 在 .NET技术 / C# 提问

AcceptCallback(IAsyncResult   ar)  
  {  
   
  }  
   
  ReadCallback(IAsyncResult   ar)  
  {  
            try  
            {  
  int   bytesRead   =   handler.EndReceive(ar);  
            }  
            catch(Exception   e)  
            {  
                    //这是一个中转服务器程序,如果一个接收数据的客户端不是正常退出的话  
                    //在走到   int   bytesRead   =   handler.EndReceive(ar);   的时候会跳到这  
                    //这个异常里面来,但问题是只要有一个客户端不是正常退出所有的连接都出了异常  
                    //数据也就不转发了.  
            }  
  }  
  Send(Socket   handler,   byte[]   byteData)  
  {  
   
  }  
  SendCallback(IAsyncResult   ar  
  {  
   
  } 问题点数:100、回复次数:8Top

1 楼OriesMap()回复于 2004-12-03 16:04:22 得分 0

不太清楚,不过我猜想服务端与客户端通信时一定会是点对点方式的。它就不应该把所有的连接都出现异常了。  
   
  帮你顶一把吧。Top

2 楼zxilu(江湖)回复于 2004-12-03 16:04:59 得分 10

你是有很多客户端链接,然后服务器给每个客户端发送数据吗?我最近刚好也在做这个事情,我是把每个链接的socket都放在一个数组里面,然后逐个的去送,你其实只要把try放在循环里面就好了,放在循环外的话一出错当然就退出了。Top

3 楼zxilu(江湖)回复于 2004-12-03 16:08:59 得分 10

把try放在循环里面,只要发送出错,我就把那个数组(ArrayList)的当前数据移除,这样可以避免数据无限制的变大。Top

4 楼nga96(因为我笨,所以努力。陈勇华)回复于 2004-12-03 18:34:09 得分 20

sorryTop

5 楼flame_qin(flame)回复于 2004-12-03 19:26:22 得分 20

学习Top

6 楼cnhgj(戏子) (没时间练太极)回复于 2004-12-03 19:35:54 得分 20

看看e.Message里有什么特征,然后做一下处理Top

7 楼still_alive(绝对黑色)回复于 2004-12-03 19:37:46 得分 20

try  
            {  
  //在这个地方加一句,  
  Application.DoEvents();  
  可以帮你解决这个问题!  
  int   bytesRead   =   handler.EndReceive(ar);  
            }  
  Top

8 楼programbin(终极猫咪)回复于 2004-12-04 18:38:03 得分 0

e.Message   是这样的   “远程主机强迫关闭了一个现有的连接”  
  我用上了  
  try  
            {  
  //在这个地方加一句,  
  Application.DoEvents();  
  可以帮你解决这个问题!  
  int   bytesRead   =   handler.EndReceive(ar);  
            }  
   
  也不行,还客户端断一个所有的连接都断了。  
  请大家想想办法。Top

相关问题

  • 问问问问问问问问问问问问问问问问题!
  • 问问问
  • 问问
  • 问,问题,问问题,问问问题 :)
  • 问问
  • 问问
  • 问问??
  • 存储过程结果集的访问问题
  • 问问问问问问问: PB 中能否做到打印预览?
  • 我想问问

关键词

  • 客户
  • 解决
  • 数据
  • 循环
  • 连接
  • endreceive
  • 客户端
  • iasyncresult
  • 帮你
  • 放在循环

得分解答快速导航

  • 帖主:programbin
  • zxilu
  • zxilu
  • nga96
  • flame_qin
  • cnhgj
  • still_alive

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo