窗口关闭后再打开出现异常

问题描述

textReceive=newThread(newThreadStart(ReceiveTextMsg));textReceive.IsBackground=true;textReceive.Start();publicvoidReceiveTextMsg(){try{socketReceive=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);stringip=GetLocalIP();ipReceive=newIPEndPoint(IPAddress.Parse(ip),8899);socketReceive.Bind(ipReceive);socketReceive.Listen(1024);}catch(Exceptionerr){Voice.WriteLog(err.Message+"fromReceiveTextMsgahead!");}while(true){Socketchat=socketReceive.Accept();try{..........}catch{chat.close();}}}相关代码如上,每次打开窗体(用菜单命令新建该窗体)运行时正常,关闭该窗体后提示未处理InvalidOperationException,在执行此操作前必须调用先bind方法

解决方案

解决方案二:
如果已经进入catch了,就别while(true)了啊
解决方案三:
好像是端口被占用了
解决方案四:
我猜你是窗体关闭时socket没有释放,导致在同一个端口有2个socket对象要对它侦听,所以就抛异常了
解决方案五:
楼主可爱阿,还是用手机拍照截屏的。
解决方案六:
引用3楼Z65443344的回复:

我猜你是窗体关闭时socket没有释放,导致在同一个端口有2个socket对象要对它侦听,所以就抛异常了

怎样释放socket,用socket.close()不就可以了吗?
解决方案七:
catch里的异常是什么?
解决方案八:
引用5楼lonelywolf115的回复:

Quote: 引用3楼Z65443344的回复:
我猜你是窗体关闭时socket没有释放,导致在同一个端口有2个socket对象要对它侦听,所以就抛异常了

怎样释放socket,用socket.close()不就可以了吗?

问题是你到底释放的哪个socket,是用于服务端监听的还是用于跟客户端通信的
解决方案九:
我依稀看到图片中后面的灯光
解决方案十:
1、把trycatc都去掉,先把代码调通2、我猜,你第一次打开正常,关闭程序的时候,资源没释放(表面上窗体看不到了,去任务管理器看可能进程还在)

时间: 2024-10-31 09:36:23

窗口关闭后再打开出现异常的相关文章

vs2010winform窗口关闭后下次打开其上的控件如何保持原来的值?

问题描述 vs2010winform窗口关闭后下次打开其上的控件如何保持原来的值? 列如在一个窗体上有一个checkbox控件,选中后关闭窗体,再打开窗体后checkbox的选中状态没有了,请教如何才能让checkbox保持选中状态,即使关闭后下次打开还是保持上一次操作时的值 解决方案 在程序不退出的情况下可以使用静态变量: 假如程序退出后再次打开,需要将值保存起来,放到数据库,磁盘文件,注册表等地方 解决方案二: 写入到文件保存,下次读取出来填充 解决方案三: 关闭窗体之前,将checkbox

rownumberer-Extjs4 tabpanel 一个页面关闭后再打开报错

问题描述 Extjs4 tabpanel 一个页面关闭后再打开报错 去年毕业,在公司一直做C/S的软件,最近工作不是很忙,就自己学习了下Extjs4 问题如标题所示.报错信息: TypeError: Argument 1 of Node.insertBefore is not an object. 我是用的desktop + Extjs提供的mvc 做的. 下面贴出部分代码 controller init:function(){ var self=this; coreApp=self; this

Extjs4---Cannot read property 'addCls' of null 或者 el is null 关于tab关闭后再打开不显示或者报错

做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCls' of null, 原因是我在定义grid的错误 这是错误代码:   [javascript] view plaincopy   Ext.define('HT.view.Grid',{       extend:'Ext.grid.Panel',          title : '人员列表',    

求助:一个外部程序调用的窗体,如果关闭外部程序再打开,会重复获取输出

问题描述 我这边的一个窗体程序是可以控制外部perl程序,接收输出,问题是,打开这个程序,关闭后再打开,接收的数据是重复的,调试了半天也不知道从什么地方输出的.是重定向异步输出的问题,还是process本身的问题?求解答啊!//点击启动程序按钮privatevoidbtnStartproc_Click(objectsender,EventArgse){procPerl.StartInfo.WorkingDirectory=filepath;procPerl.StartInfo.Arguments

asp.net实现用户窗口关闭后Session立即过期

我们知道WEB服务器的Session是与客户端浏览器线程关联的,如果用户关闭了浏览器,服务端创建的Session对象也将会失效,但是,IIS在处理Session时,默认配置下,并不回立即将用户Session失效,通常需要等待1分钟左右时间,在这1分钟期间,用户的Session信息依然存储在服务端内存,如果被非法劫持利用的话很容易造成安全问题,所以在某些特定的场合,需要用户在页面窗口/标签关闭后,立即废止Session 以下是一种简单的方法 1.窗口关闭后立即弹出一个新页面 2.新页面中将Sess

visual studio 2010-vs2010 新建项目不出现编辑框 最小化后再打开 却出现了编辑框

问题描述 vs2010 新建项目不出现编辑框 最小化后再打开 却出现了编辑框 vs2010 新建项目不出现编辑框 最小化后再打开 却出现了编辑框,求大神帮忙解决,谢谢!! 解决方案 截个图看看你在说什么 解决方案二: 新建项目后 编辑框不能及时显示 我点"最小化"后,再 打开 编辑框就可以显示了, 这两项都已经勾选了, 谢谢帮忙. @有_道_是 解决方案三: 建立项目的编辑框?还是文件编辑框? 建立空项目,没有源文件,是不会打开文本编辑框的.

java-关于WebSocket的问题 为什么浏览器关闭后会出一下异常

问题描述 关于WebSocket的问题 为什么浏览器关闭后会出一下异常 错误信息```java.net.SocketException: Software caused connection abort: recv failedat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.read(SocketInputStream.java:129)at java.net.Socket

link如何保存程序里面所有的窗体,关闭程序再打开和上次的要一模一样?

问题描述 link如何保存程序里面所有的窗体,关闭程序再打开和上次的要一模一样? link如何保存程序里面所有的窗体,关闭程序再打开和上次的要一模一样? 解决方案 foreach (Control ctrl in Controls)遍历窗体,然后写入配置文件.在Form_Load中读取配置文件并恢复.

BootStrap的alert提示框的关闭后再显示怎么解决_javascript技巧

bootstrap中有alert组件,如果点击关闭按钮后该组件会被删除而不是被隐藏,想再显示怎么办呢? bootstrap-alert.js源码片段: function removeElement() { $parent .trigger('closed') .remove() } 理论上把.remove()改为.hide(),然后在需要重新显示的地方,加上$('#alert').show();就可以了. 但实际应用中,可以把 close button 的 data-dismiss 去掉,加上