当前位置: 技术问答>linux和unix
socket客户端connect服务端后,如何断开连接?
来源: 互联网 发布时间:2016-02-23
本文导语: socket编程中: 客户端connect服务端后,如何断开连接?过后还可以连接服务端。 | close后,下次再connect时,会提示socket不能用了。 shutdown后,下次再connect时,会提示已连接了,就...
socket编程中:
客户端connect服务端后,如何断开连接?过后还可以连接服务端。
客户端connect服务端后,如何断开连接?过后还可以连接服务端。
|
close后,下次再connect时,会提示socket不能用了。
shutdown后,下次再connect时,会提示已连接了,就是说还没断开。?????
close 是关闭进程中的socket句柄,如果socket已经没有其它进程占用了,就会断开socket连接,
重新用connect连接时,这时socket句柄已经关掉了,所以提示socket不能用了,需要重新
使用socket()创建一个socket句柄
shutdown 会把系统中的socket对象关掉,此时connect提示已经连接,这个就搞不清楚了
不过此时最好close一下, 因为shutdown只是关掉内核层的socket,进程中应该还保存了
句柄
shutdown后,下次再connect时,会提示已连接了,就是说还没断开。?????
close 是关闭进程中的socket句柄,如果socket已经没有其它进程占用了,就会断开socket连接,
重新用connect连接时,这时socket句柄已经关掉了,所以提示socket不能用了,需要重新
使用socket()创建一个socket句柄
shutdown 会把系统中的socket对象关掉,此时connect提示已经连接,这个就搞不清楚了
不过此时最好close一下, 因为shutdown只是关掉内核层的socket,进程中应该还保存了
句柄
|
close,然后在需要的时候connect呀!
|
这个错误如果是在客户端发生的,那么可能是因为你指定了一个端口与服务器相连,在close之后端口不是立即释放,所以不要指定一个端口,在客户端如果不指定端口,那么系统会随机的分一个,就不会这样了,如果是服务器端有这个问题,那么就不要close了,服务器端如果不是退出的话,应该不用这个函数
|
socket即使close了,也还是会存在的,除非设置socket的option,设置为立即close
看一下setsockopt()这个函数吧
看一下setsockopt()这个函数吧
|
不如果不是正在同步的方式传送数据,直接shutdown或者close即可
|
First of all , Server's socekt is not close.
if u had closed client's socekt , u should creat it again when u want to connect server's.
if u had closed client's socekt , u should creat it again when u want to connect server's.
|
会提示端口无法连接 过一会就会自动释放 然后就可以重连了