socket.beginreceive,使用65536大小的buffer来接受
callback函数为aaa()
内容如下
aaa()
{
socket.endreceive();
socket.beginreceive(...........);
}形成一种循环无限调用的关系,24小时待机接收客户发过来的信息经过测试发现,如果客户连接好的话,没什么问题
但是一旦客户网络不好,或者断开,那就会让cpu占用达到99%并且把内存全部占用感觉应该是客户断开但是beginreceive和aaa仍然无限调用导致请问怎么解决?
callback函数为aaa()
内容如下
aaa()
{
socket.endreceive();
socket.beginreceive(...........);
}形成一种循环无限调用的关系,24小时待机接收客户发过来的信息经过测试发现,如果客户连接好的话,没什么问题
但是一旦客户网络不好,或者断开,那就会让cpu占用达到99%并且把内存全部占用感觉应该是客户断开但是beginreceive和aaa仍然无限调用导致请问怎么解决?
解决方案 »
- C#使用GDI+编程时的一些问题,假如要在一个panel中显示若干个Button,直接使用Button控件与使用GDI+绘制哪个效率高啊,跪求大侠指导!
- 如何用正则取出一段字符串中的一部分??
- 如何禁止WinForm 上的Control重绘?
- 一个奇怪的问题!请各位大侠帮帮忙!
- 请问我怎么把在命令模式输入ipconfig/all的信息通过C#读入到textbox或者其它控件,谢谢!
- 急!!! c# 如何保存程序设置为TXT或ini或其他文件 ????在线等……
- winfrom ListView 横向滚动条 在线等..
- 字符串如何转成LINQ表达式呢?麻类有经验的大牛指点一下
- 听说可以在硬盘上安装vs.net,是真的吗,怎么做
- C#获取两次点击button的时间间隔怎么写?
- C# 弹出窗口位于其它控件下面
- 关于遍历文件夹、文件
private TcpClient tcpClientCmd = null;
void start()
{
tcpClientCmd = new TcpClient();
tcpClientCmd.Connect(ipadress, port);
}
private object thislock = new object();
private void aaa(IAsyncResult ar)
{
Socket localClient = (Socket)ar.AsyncState;
int bytesRead = 0;
lock (thislock)
{
bytesRead = localClient.EndReceive(ar);
}
lock (thislock)
{
tcpClientCmd.Client.BeginReceive(buffer, 0, 65536, 0, new AsyncCallback(aaa), tcpClientCmd.Client);
}
}