社区
C#
帖子详情
轻轻的问一句,如何关闭一个socket连接
hebeijg
2011-05-23 02:18:27
查的用Shutdown来禁止发送和接受,然后close这个socket,
但是在异步接收数据的时候,当Shutdown后,接受函数总是接收到一次请求,但是这个时候因为已经调用了Shutdown所以会出异常,查看此时的socket状态connected为FALSE。
请问各位高手,如何关闭一个连接的socket呢
谢谢
...全文
957
13
打赏
收藏
轻轻的问一句,如何关闭一个socket连接
查的用Shutdown来禁止发送和接受,然后close这个socket, 但是在异步接收数据的时候,当Shutdown后,接受函数总是接收到一次请求,但是这个时候因为已经调用了Shutdown所以会出异常,查看此时的socket状态connected为FALSE。 请问各位高手,如何关闭一个连接的socket呢 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
daifei4451
2011-05-23
打赏
举报
回复
socket.setSoTimeout(Timeout); //设置超时
closesocket( SOCKET s)的作用是关闭指定的socket,并且回收其所有的资源。
shutdown( SOCKET s, int how)则是禁止在指定的socket s上禁止进行由how指定的操作,但并不对资源进行回收,shutdown之后而closesocket之前s还不能再次connect或者WSAConnect.
ghost5216
2011-05-23
打赏
举报
回复
[Quote=引用 10 楼 hebeijg 的回复:]
引用 9 楼 ghost5216 的回复:
TCP要三次握手
FIN要来回传递,客户端关闭,服务器告诉它“我知道了!”
更详细的可看《windows网络编程技术》的某章,网上有电子书。
高手,
我平常都把三次握手背的滚瓜烂熟,结果到实际中才发现,实践出真知,
谢谢
[/Quote]
愧不敢当,我只记得些印象,楼主自裁。
hebeijg
2011-05-23
打赏
举报
回复
[Quote=引用 9 楼 ghost5216 的回复:]
TCP要三次握手
FIN要来回传递,客户端关闭,服务器告诉它“我知道了!”
更详细的可看《windows网络编程技术》的某章,网上有电子书。
[/Quote]
高手,
我平常都把三次握手背的滚瓜烂熟,结果到实际中才发现,实践出真知,
谢谢
ghost5216
2011-05-23
打赏
举报
回复
TCP要三次握手
FIN要来回传递,客户端关闭,服务器告诉它“我知道了!”
更详细的可看《windows网络编程技术》的某章,网上有电子书。
wozaiqingniao
2011-05-23
打赏
举报
回复
我没在客户端上写过close 都是在服务端写的,还有那个禁止收发的。
hebeijg
2011-05-23
打赏
举报
回复
不是,
现在假设有一个服务器端,一个客户端,
当客户端执行shutDown的时候,服务器端会得到0字节,这样服务器端知道客户端已经关闭,
但是郁闷的是,客户端的接收函数里也会触发一次,这时,如果调用EndReceive会报错,
查看这时的socket的connected属性,发现是FALSE。
想知道为什么在客户端会有第二次的这个触发,
wangyue4
2011-05-23
打赏
举报
回复
Receive方法返回0就代表对方关闭了!!!
ghost5216
2011-05-23
打赏
举报
回复
Receive返回0个字节,对吗?
你可以关闭了
hebeijg
2011-05-23
打赏
举报
回复
当我执行Shutdown这个函数的时候,接收函数里就有一次请求,
和服务端执行send函数一样。
ghost5216
2011-05-23
打赏
举报
回复
"接受函数总是接收到一次请求,"
请求是什么意思
hebeijg
2011-05-23
打赏
举报
回复
如果用close关闭,这样在服务器端会产生一个远程强制关闭远程连接的错误。
beckfun
2011-05-23
打赏
举报
回复
没深入研究过socket 不过我都是用close关闭呀...
关于c#,PHP
socket
挂到云服务器上之后本机无法
连接
的
问
题
最近写了下PHP
socket
编程,在本机测试一直没有
问
题,昨天放到云服务上之后,本机一直
连接
不上。但是同样的云服务器,用c#的
socket
监听同样的端口,本机可以
连接
,所以不是端口的
问
题。也没有
一句
log,效果看起来就像是端口未开放一样,由于是初接触PHP,
socket
代码就是根据网上的教程写的,不过都是那几步,创建,绑定,监听。然后一直也没有
问
到合适的答案,今天早上继续找答案的时候,突...
使用Super
Socket
打造逾10万长
连接
的
Socket
服务
使用Super
Socket
打造逾10万长
连接
的
Socket
服务 原文:使用Super
Socket
打造逾10万长
连接
的
Socket
服务Super
Socket
是
一个
轻量级, 跨平台而且可扩展的 .Net/Mono
Socket
服务器程序框架。你无须了解如何使用
Socket
, 如何维护
Socket
连接
和
Socket
如何工作,但是你却可以...
socket
连接
超时
问
题
一部分
把CSDN与中文yahoo翻了底朝天,也没找到如何设置
socket
的
连接
超时的满意方法,
问
此
问
题的兄弟已有一大堆,这里偶就讲一下win下如何设置
socket
的connect超时。
设置connect的超时很简单,CSDN上也有人提到过使用select,但却没有
一个
令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字
Socket
编程概念
一:什么是
SOCKET
socket
的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是
一个
通信链的句柄(其实就是两个程序通信用的)。
socket
非常类似于电话插座。以
一个
电话网为例:电话的通话双方相当于相互通信的2个程序,电话号码就是ip地址。任何用户在通话之前,首先要占有一部电话机,相当于申请
一个
socket
;同时要知道对方的号码,相当于对方有
一个
固定的
socket
。然后向对方拨号呼叫,相当于发出
连接
请求。对方假如在场并空闲,拿起电话话筒,双
【小沐学C++】C++实现
socket
网络通信
C++实现
socket
通信1、简介2、TCP方式2.1 服务端2.2 客户端后续 1、简介
socket
顾名思义就是套接字的意思,用于描述地址和端口,是
一个
通信链的句柄。应用程序通过
socket
向网络发出请求或者回应。
socket
编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW),前两者较常用。基于TCP的
socket
编程是流式套接字。 2、TCP方式 Server Initialize Winsock. Create a sock
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章