137867312 2014-09-11 07:52 采纳率: 100%
浏览 744

程序不能持续运行问题

运行状况:我用C#语言编写了一个client端程序,放在阿里云上与Server端(不用我编写)通过网络通信,主要是接收Server端上传上来的数据,但每隔15min会向Server端发送一次命令。

运行现象:当整个程序运行到几十个小时(最长的是82个小时)后,出现“无法向网络连接中写入数据”的报错并指示CircleCallAll()命令代码段出错。

求助问题:请各位大牛们分析一下可能出现问题的原因。

相关代码`:接收数据部分
public class dataread//接收数据基础类
{
public NetworkStream netstream;
public byte[] PackageBuffer;
public dataread(NetworkStream sn, int buffersize)
{
this.netstream = sn;
this.PackageBuffer = new byte[buffersize];
}
}
private void ReadCallBack(IAsyncResult ar)//接收数据的回调函数
{
try
{
int rec = netStream.EndRead(ar);
PackageBufferLength = PackageBuffer.Length;
ShowPackage();//显示接收到的报文
ParsePackageBuffer();//解析接收到的报文

netStream.BeginRead(PackageBuffer, 0, PackageBuffer.Length, new AsyncCallback(this.ReadCallBack), netStream);
netStream.Flush();
}
catch (Exception ex)
{
txtState.Text = ex.Message;
}
}

定时下发命令部分
private void timer5_Tick(object sender, EventArgs e)
{
tm5++;
while (tm5 % 901 == 0)
{
netStream.Flush();
rtb.Clear();
CircleCallAll();//命令函数
break;
}
}
private void CircleCallAll()
{
this.timer5.Stop();
······//代码部分
this.timer5.Start();
tm5 = 1;
}
`

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥35 平滑拟合曲线该如何生成
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站