c#代码-程序不能持续运行问题

问题描述

程序不能持续运行问题

运行状况:我用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;
}
`

时间: 2024-11-26 23:20:16

c#代码-程序不能持续运行问题的相关文章

代码分析-手机恶搞程序代码的编写和运行方法

问题描述 手机恶搞程序代码的编写和运行方法 现在的安卓机有没有可以通过微信QQ之类在手机上运行的代码!怎么弄?详细点! 解决方案 有的,贴出你的手机号,发给你.

浏览器长期运行无法响应(程序中使用了js 的方法setTimeOut(),持续运行两天以后浏览器长期运行无法响应)

问题描述 浏览器长期运行无法响应(程序中使用了js的方法setTimeOut(),持续运行两天以后浏览器长期运行无法响应) 解决方案 解决方案二:检查你的JS吧你也太强了吧持续运行两天!解决方案三:死循环吗-解决方案四:何苦呢解决方案五:强悍解决方案六:有什么方法能够解决这个问题吗,系统场景:bs结构系统需要长期持续运行进行数据监控(通过浏览器)采用了不间断地(每两秒一次)向数据库发出请求数据命令,返回数据并显示到页面现在采用的是ajax方法,利用js的setTimeOut()发送回调方法进行后

MYSQL客户机程序4—在运行时获取连接参数

    6.5 客户机程序4-在运行时获取连接参数     现在我们有了容易修改的防止出现错误的连接代码,我们要了解一些如何做某些比使用NULL 连接参数更灵巧的事情,如在运行时允许用户指定一些值.客户机程序3由于固定连接参数方面的缺陷,要想更改那些值中的任何一个,都必须编辑源文件并重新编译.这十分不方便,特别是想使程序用于其他人时.在运行时指定连接参数的一个通用的方法是使用命令行选项.MySQL分发包中的程序接受两种形式的连接参数,如表6 - 1所示.    与标准的MySQL客户机程序一致,

在.NET下编写中文代码程序

程序|中文 在.NET下编写中文代码程序 郑佐2005-3-9 一年前,有一次在用Access数据库编程的时候,通过VS.NET数据设计器向导生成数据层代码,查看生成的代码,发现有许多中文,原来数据库中的表名和字段名用的就是中文,程序正常运行,查看相关文档才知道原来VS.NET默认的编码是UTF-8.不久前在一篇blog上看到讲易语言,所以干脆用VS.NET写一些中文代码来玩一下,结果就像平常写程序一样没有什么区别. 有点怪怪的味道,故把代码贴出来. using System; namespac

WinCE应用程序开机自动运行的又一种方法

近日在开发过程中遇到WinCE应用程序开机自动运行的问题,在网上找了找,发现大概有以下三种方法: 1.将应用程序和应用程序快捷方式添加到映像里,再将快捷方式添加到StartUp目录下,这样当系统运行后应用程序就能自动运行: 2.直接替换Wince的SHELL,即修改注册表: [HKEY_LOCAL_MACHINE\init] "Launch50"="explorer.exe" "Depend50"=hex:14,00, 1e,00 把这个expl

防止一个没有窗体的WINDOWS程序的重复运行

用互斥(Mutex),Mutex本来是多线程同步用的,防止多个线程访问同一资源而引发冲突.用CreateMutex可以创建Mutex对象,实质上是一个kernel对象. 在任何Win32程序(包括GDI和Console)的启动部分加上以下代码(Console程序的main函数.MFC程序的CWinApp派生类的InitInstance成员函数.RawSDK程序的WinMain 函数): hMutex=CreateMutex(NULL,//nosecurityattributesFALSE,//i

listview-Hashmap代码在 simpleadapter 数组运行但不能在 custom array adapter 中运行

问题描述 Hashmap代码在 simpleadapter 数组运行但不能在 custom array adapter 中运行 下面的 Hashmap代码在 simpleadapter 数组中可以运行但是在自定义的 adapter 数组中不能运行,为什么呢? 我使用的 lazyLoading 类来加载图像. public void onItemClick(AdapterView<?> parent View view int position long id) { HashMap<Str

c语言-求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行

问题描述 求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行 写说明一下代码,代码主要是要在控制台模拟浏览器对tab和网页前进后退的一些操作 再说明一下问题,问题在于brwosertab类和webinformation类的西沟函数,一旦在这两个类的西沟函数里面写上delete 指针名字:整个程序就不能运行了,最关键的是我不太明白为什么程序要调用这两个函数,因为我感觉我都是动态对象啊.最后说明一下,我很菜,只有一点java编程的经验,所以第一次应对c++我真的需要一些帮助.谢谢你们了! 解决方

linux网络编程-Socket编程,写了结束子进程的程序,但是运行起来有问题

问题描述 Socket编程,写了结束子进程的程序,但是运行起来有问题 在ubuntu上写的一个socket的程序,select并发的,当客户端断开,子进程要被结束,测试在ubuntu本地运行是没有问题的,同样的程序上传到服务器(CentOS)上,发现客户端关闭后,服务端没有办法结束生成的子进程,请问各位大大这是什么原因造成的啊... 出现问题的代码如下主函数中写了 signal(SIGCHLDsig_child); 函数实现如下: void sig_child(int signo) { pid_