当前位置:  技术问答>linux和unix

UDP Socket 关闭操作请教

    来源: 互联网  发布时间:2017-04-03

    本文导语:  Hi:all:   请教一个问题,请指教:   创建一个Udp Socket(例如为gSocket),完成了一次发包以及相应的收包,然后就关闭了套接字(close(gSocket))。   后续,在这个gSocket上依然可以发包成功(sendto),但是却无法收包(...

Hi:all:
  请教一个问题,请指教:
  创建一个Udp Socket(例如为gSocket),完成了一次发包以及相应的收包,然后就关闭了套接字(close(gSocket))。
  后续,在这个gSocket上依然可以发包成功(sendto),但是却无法收包(recvfrom)。所以请教一下,对于Udp类型的socket的close操作实现了什么效果:为什么关闭后,可以依旧在这个socket上发包成功,但是收包却失败呢,请高手指教。

  编程环境为(linux suse) & g++

|
你确定close socketfd 后在发送数据服务器端还能接受到数据?你在close后面加个延时函数试试,然后在发送数据,看看服务器端还能接受到数据么? 我测试着这包数据没有到达服务器端.

|
Linux下面的不知道
WIndows下面closesocket(gSocket)之后还有两个操作:
1. closehandle(handle) // 关闭句柄
2. WSACleanup() // 把DLL清出去

|
我是这样理解的,发出去只是从本地发出去成功了,并不表示到达目的的,且对方接收成功。

就好像我本来是要去汽车南站的,我从家里出去了,但是并不表示我一定能到达南站呀,假如迷路或....。

所以发送成功与接收成功完全是两个相互独立的事件,并没有任何必然联系。

|



具体实现了什么,我也没有研究过。你只要保证程序的逻辑是正确的就好了,太细的不需要研究。
按正常操作步骤来就好了。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么实现对一个udp数据报分多次读的操作
  • Qt:UDP:如何划分接收到的UDP包的界限
  • udp包大于1500字节网络传输会分包吗?udp tcp多大的包比较合适?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 50求教一个菜鸟级别的UDP套接字问题,关于UDP server端只能接收一次数据的问题?在线等,一直等............
  • udp方式抓取网页
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
  • udp socket客户端和udp服务端程序示例分享
  • TCP与UDP通信问题!
  • 如何判断udp端口可达
  • 关于epoll&udp的问题?
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 对于socket UDP传输,一个端口只能被一个进程绑定?
  • IP,UDP,TCP的校验和计算
  • UDP协议在实现时有没有在发送端或者接收端设置缓冲区?
  • 基于UDP的数据传输 UDT
  • 服务进程收到的第一个UDP包的远端地址不对?
  • udp问题
  • 关于udp sendto时候端口选定问题
  • jme 0000:07:00.5:eht0:udp checksum error


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,