程序运行过程中死机的解决方法?

问题描述

我编写了一个数据交换席位(类似于聊天室的服务器)程序,与1-2个用户进行数据交换时没有问题,但是超过2个用户同时进行数据交换,程序必定马上死机,我想请问应该怎么解决?我用的是TCP协议,网络通信使用的是Socket通信,具体程如下:privatevoidstart(){try{CheckForIllegalCrossThreadCalls=false;if(ipstring!=null){endpoint=newIPEndPoint(IPAddress.Parse(ip),80);listener=newTcpListener(endpoint);listener.Start();{thread=newThread(newThreadStart(this.startsocketlisten));thread.Start();}}}catch(Exceptione){MessageBox.Show(e.Message.ToString());}}privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true){try{if(listener.Pending()){Socketsocket=listener.AcceptSocket();Threadthread1=newThread(newThreadStart(xianshi));thread1.Start();}}catch{}}}publicvoidxianshi(){//数据解析}

解决方案

解决方案二:
不懂,帮顶
解决方案三:
新手......
解决方案四:
难道死锁???不懂,胡说
解决方案五:
感觉很乱。。。boolacceptenum=true;是个局部变量啥时停止?不过看你thread应该是个类成员变量。Socketsocket=listener.AcceptSocket();Threadthread1=newThread(newThreadStart(xianshi));thread1.Start();你这个xianshi函数怎么跟新建立起来的socket连接关联上的?
解决方案六:
能知道是那里死了吗listener.AcceptSocket()这里你是不是写了在UI线程上面?
解决方案七:
能知道是那么死了吗?listener.AcceptSocket()这句是不是写了在UI线程上面
解决方案八:
能知道是那么死了吗?listener.AcceptSocket()这句是不是写了在UI线程上面
解决方案九:
privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true){try{if(listener.Pending()){Socketsocket=listener.AcceptSocket();Threadthread1=newThread(newThreadStart(xianshi));thread1.Start();}}catch{}}}boolacceptenum=true;跟while语句,不死机才怪
解决方案十:
privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true){try{if(listener.Pending()){Socketsocket=listener.AcceptSocket();Threadthread1=newThread(newThreadStart(xianshi));thread1.Start();}}catch{}}}boolacceptenum=true;跟while语句,不死机才怪
解决方案十一:
privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true){try{if(listener.Pending()){Socketsocket=listener.AcceptSocket();Threadthread1=newThread(newThreadStart(xianshi));thread1.Start();}}catch{}}}boolacceptenum=true;跟while语句,不死机才怪
解决方案十二:
privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true)boolacceptenum=true;跟while语句,不死机才怪
解决方案十三:
privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true)boolacceptenum=true;跟while语句,不死机才怪
解决方案十四:
privatevoidstartsocketlisten(){boolacceptenum=true;while(acceptenum==true)boolacceptenum=true;跟while语句,不死机才怪
解决方案十五:
能知道是那么死了吗?listener.AcceptSocket()这句是不是写了在UI线程上面
解决方案:
uo
解决方案:
该回复于2008-03-14 09:09:43被版主删除
解决方案:
该回复于2008-03-14 09:09:43被版主删除
解决方案:
写聊天室的程序,肯定要用到多线程,至于如何编写,我也不是太内行?以前做过P2P聊天软件,你死机,就是没有用多线程,在VS2005下调试多线程,我的解决办法是Console.WriteLine()输出
解决方案:
你用的是socket同步调用,用到了多线程,但是对接受近来的socket没有进行处理.如果每次socket调用时间都不长,是短连接,可以用同步socket+多线程或socket+队列+多线程,但如果是长连接,建议用异步socket,这样效率比较高!
解决方案:
好资料,怎么获得?
解决方案:
publicvoidxianshi(){//数据解析}问题是你的数据解析代码没有写好!需要用lock(object){}来处理或者用monitor方法来实现数据排队解析
解决方案:
该回复于2016-02-28 23:42:43被版主删除

时间: 2024-08-30 07:07:59

程序运行过程中死机的解决方法?的相关文章

安装Windows 7过程中卡死机的解决方法

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   应用某些主板的计算机安装Windows 7,在复制安装文件后进入"正在启动Windows"(Starting Windows)界面时死机,现象为四个小光球一直不出现或是出现到一半时卡死,应该怎么办呢? 出现此问题首先可以考虑在BIOS中尝试禁用ACPI,如果这种方法无效,可以在继续安装前使用PE或Win7系统安装盘(修复模式)引导进入系统,从

图片-图像旋转显示过程中死机

问题描述 图像旋转显示过程中死机 为了实现在图片显示时,保持原有的图片方向,参考了网上博客文章之后,找到了对策 和相应的代码:具体的步骤如下: 1.自动识别图像方向,计算旋转角度: 2.对图像进行旋转并显示 但是在利用bitmap的createbitmap时出现超出内存的问题,原因是因为图片太大,求解决方法 解决方案 你的图像太大了,可以考虑将图片缩小,太大了对于程序处理来说不太现实. 解决方案二: 不太明白,是旋转的动画效果吗?中间的动画效果不需要使用真实的图片吧.

c++-各位大虾, 我想在程序里监视系统上运行的某些程序运行过程中是否报错异常,能实现吗? 怎么实现?

问题描述 各位大虾, 我想在程序里监视系统上运行的某些程序运行过程中是否报错异常,能实现吗? 怎么实现? 对于程序运行过程中卡死已经能检测,但是对于一些弹框类的运行出错却不知道怎么检测,请各位大虾指点迷津; 现在没有C币,如果回答是我想要的,我花钱补上 解决方案 这不就是编写一个华医生么(注:华医生是微软系统上负责处理应用程序崩溃的程序,就是你图上的"xxx已停止工作,Windows正在联机查找解决方案"),这是一个应用程序,是在用户模式下实现的,而并非在内核中实现,其实华医生也可以卸

ADSL让电脑死机的解决方法

相信大家很多人都碰到过这样的情况,就是刚装了宽带的时候出现电脑一开机出现拨号连接的时候电脑就死机,要过上几分钟才会好.下面就给大家介绍下ADSL让电脑死机的解决方法. 我们先来分析下出现这种情况的原因:Windows XP在默认安装方式下,对网卡的TCP/IP设置础?凇白远?获取"状态.当系统启动后,系统首先检测网卡配置中是否有固定的IP地址,如果没有找到固定IP地址,则会向外发送数据包请求网络中的DHCP服务器分配IP地址:如果没有连接到DHCP服务器,系统将使用自动专用IP寻址,指定网卡的I

电脑死机怎么回事?电脑死机的解决方法介绍

  电脑死机是我们在使用电脑的过程中避免不了的事情,对于老一些的机器更是经常遇到的,那么电脑死机怎么回事?下面小编就为大家介绍电脑死机的解决方法,一起来看看吧! 方法/步骤 1.首先电脑死机我们第一步先按键盘组合键"Ctrl+Alt+Del",调出"任务管理器" 2.然后我们点开"应用程序"选项卡 3.查看"状态栏:,一般正常情况下显示状态是"正在运行",而死机的时候一般会显示"未响应" 4.出现

Win8.1系统右键点击文件提示"未响应"死机的解决方法

  Win8.1系统右键点击文件提示"未响应"死机的解决方法.在Win8.1系统打不开右键菜单,右键点击文件过几秒钟后会出现程序"未响应"的提示,不管是文件还是文件夹都是这种情况,杀毒和重启也不能解决,这时候我们该怎么解决此问题呢?下面小编介绍几种解决方法,有需要的可以看看. 解决方法一:干净启动 如果要恢复到正常状态只要在系统配置对话框:"常规"选项卡上,点按或单击"正常启动"选项即可. 解决方法二:如果问题依旧,请尝试:

程序运行过程中动态改变控件大小的方法

程序|动态|过程|控件 在程序运行期间改变控件大小要用到WindowsAPI函数以下是主要的代码 [DllImport("user32.dll", EntryPoint="GetWindowLong")] public static extern int GetWindowLong ( int hwnd, int nIndex ); [DllImport("user32.dll", EntryPoint="SetWindowLong&q

windows7 频繁死机的解决方法

我的本本运行 Windows XP 良好,可自从安装Windows7后,经常无规律死机,尤其是浏览网页的时候偶尔容易死机.表现症状:鼠标不动,键盘除Fn下的亮度调节外,其它全部无效.屏幕盖子合上后,屏幕照旧亮着,没有关闭.系统均为正版版本,全安装方式,系统纯净,除WIN7自带外无第三方杀毒软件,只安装了 OFFICE2003厂家本本自带程序外,没有安装其它软件. 处理过程: 1.试图在BIOS设置中禁用ACPI,可进入BIOS后在我的机子中没有发现这一项. 2.升级BIOS到最新版本,无效还是会

Linux系统“死机”时解决方法_unix linux

如果问题能够再现,那么问题已经解决 80% 了.对于操作系统核心而言,如果有问题的再现方法,那么可以说是已经解决 99% 了.经常遇到的问题是系统可以正常运行一段时间,然后死机.如果不好再现问题,那么只有根据死机现场遗留的东西来进行分析了.  如果系统没有死干净,比如磁盘中断和文件系统是好的,那么也许能有日志信息保留在文件中,不过这样的好运气我是从来没有遇到过的.如果键盘中断还能响应 (按下Num Lock,可以看见键盘小灯亮灭),那么运气就算是足够好了,这时可以祭出 sysrq 大法,同时按下