如何强制结束套接字的BeginReceive?不要关闭套接字的方法。

问题描述

套接字的BeginReceive函数是阻塞的,希望在需要强制结束它的时候可以在其他地方把它结束掉,但目前知道的方法是关闭套接字,显然这个是不规范的,仅仅是要结束这个接收函数为什么要把套接字关了,但是,在网上搜了很久都没有找到其他更有效的方法,希望高手们能指点下,万分感谢!

解决方案

解决方案二:
引用楼主huangyinghua的回复:

套接字的BeginReceive函数是阻塞的,

什么意思?你从哪里看到它是阻塞的呢?
解决方案三:
我知道它是异步,执行BeginReceive会立即返回,但是它是在后台运行着不断监听接收数据的,站在我的角度看它就相当于阻塞了,只要没有数据到来,它就会一直监听等待数据,现在我希望能在其他地方结束它的等待接收。
解决方案四:
EndReceive不行么
解决方案五:
再说,不是可以设置readtimeout么,怎么会;没有数据就一直等待呢
解决方案六:
请知道的高手指点,万分感谢!

时间: 2024-10-01 20:11:02

如何强制结束套接字的BeginReceive?不要关闭套接字的方法。的相关文章

强制结束指定Windows Vista进程

一般情况下,我们在需要结束某个进程往往会选择右键任务栏 - 任务管理器 - 右键某进程 - 结束的方式来进行.但其实我们还可以通过命令来对此操作进行更多的选项. 首先, * 开始菜单- 程序 - 附件 - 命令提示符 * 右键 - 以管理员身份运行 * 输入tasklist,出现如下列表: Image Name PID Session Name Mem Usage ========================= ======== ================ ============ s

如何强制结束进程命令

  1.ntsd强制结束命令 其实我只需要通过两个命令来强制性的结束这些进程,第一个命令就是ntsd命令,先要找到你的PID值,这个PID值是在任务管理器上面可以查看的到,在任务管理器上线点击"查看--选择列"在弹出的选择进程页列窗口上面将PID前面的勾选起来即可看到你的进程PID值. 现在在点击开始菜单中的"运行"--在运行输入框上面输入"cmd"命令,执行该命令即可进入到windows dos状态下.然后在上面输入[ntsd -c q -p

电脑任务管理器强制结束一些进程失败的解决方法

  1.单击开始菜单,在搜索框内输入"CMD";   2.按回车,打开命令提示符窗口; 3.在命令提示符窗口中输入:tasklist;   4.按回车,就会显示出当前运行的程序; 5.输入"Tskill+进程名",即可结束进程; 6.这样就可以结束任务管理器无法结束的进程; 7.记住,只要输入进程名,不用输入扩展名; 8.不要关闭System.SMSS.EXE和CSRSS.EXE进程. 电脑任务管理器强制结束一些进程失败的解决方法介绍到这里,下次遇到相同问题的时候可

win7下强制结束进程命令

如果查看8080端口是否被占用: netstat -ano | findstr "8080" 如果1668被占用了. tasklist | findstr "1668" 杀死他 taskkill /im Tomcat6.exe /f win7下强制结束进程命令    命令:tasklist 作用:显示当前正在运行的任务   命令:taskkill 作用:结束某任务   用法:同时按键windows+R --cmd--cd c:/windows/system32--t

NSIS:强制结束软件进程

原文NSIS:强制结束软件进程 有时候,我们选择卸载软件后发现安装目录中的主文件依然存在,不是我们卸载代码写的不对,而是卸载的时候软件根本就没有关闭! 在卸载前加上下面这个宏可以在一定程度上免除上述的尴尬,不信,你就试试!  轻狂注: 本宏可用于删除程序前使用!判断用户的程序是否仍在运行,如果运行,就将其进程结束,再删除程序. 代码如下:  01 outfile "test.exe"    ;www.flighty.cn 02 var exestr            ;可以是多个进

在win form 程序中,如何知道自己被别的程序强制结束了?谢谢!!!

问题描述 在winform程序中,如何知道自己被别的程序强制结束了?谢谢!!!或是别的进程或用户用任务管理器把自己结束了,因为我想在程序终止前做一些操作(作记录身末的) 解决方案 解决方案二:终止进程还可以触发事件吗?那木马就麻烦了..你结束我之前我先把你给结束了..哈哈..

删除EM,强制结束EM进程后,启动数据库ORA-00119,ORA-00132报错的解决方法_oracle

通过emca -deconfig dbcontrol db -repos drop命令删除EM资料库时,很长时间没有删除完成,期间数据库连接数暴涨,达到数据库最大连接数,结果前台及后台均连接不上数据库.强制杀死EM及应用相关进程,关闭数据库后,重启数据库时报:ORA-00119,ORA-00132错误. SQL> startup; ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00132: syn

十万火急-vb中 设定text1只能输入6个字,当输入8个字时,多出来的2个字自动输入到text2中

问题描述 vb中 设定text1只能输入6个字,当输入8个字时,多出来的2个字自动输入到text2中 vb中 设定text1只能输入6个字,当输入8个字时,多出来的2个字自动输入到text2中,请问如何实现?谢谢!急!急!急!

360好搜摸字搜索是什么 360好搜摸字搜索使用方法介绍

360好搜摸字搜索是什么 360好搜的摸字搜索简单的说就是直接涂抹你要搜索的文字,然后软件便会自动搜索内容,不需要你再手动输入的,但是目前的体验来看,并没有那种极致感,还有待加强.因为它只有在你复制文字或者截图的时候,这个功能才会被掉出来,当然,前提是你开启了这个功能.摸字搜索功能是默认就开启的,去过你没关闭过的话,不需要再去手动开启. 360好搜摸字搜索怎么用 点击[摸字搜索]在新的界面中会有提示说"请摸一下要搜索的文字". 按照提示,那我就直接摸一下"账户突增80亿&qu