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

请教一下网络通讯非阻塞巨难的问题

    来源: 互联网  发布时间:2015-10-11

    本文导语:  在TCP非阻塞状态下,发送数据,要怎么知道发送有没有成功,因为数据只是成功的拷到缓冲区,不知道接收方有没有正确收到,要怎么判断数据已经被接收方成功接收? | 对方成功接收后回传...

在TCP非阻塞状态下,发送数据,要怎么知道发送有没有成功,因为数据只是成功的拷到缓冲区,不知道接收方有没有正确收到,要怎么判断数据已经被接收方成功接收?

|
对方成功接收后回传一个ACK信号,不过这是协议内部定义的,估计访问不了。
建议对方成功接收后通过socket回传一个如“ok”信号。

|
非阻塞方式下,需要根据你非阻塞函数返回值判断发送的字节数,发生出去的字节是可以保证被服务器端接受的,

|
呵呵,虽说是TCP,可能会阻塞在你本地TCP/IP Stack的缓存区或对方的缓存区而没有提交到对方的应用。如果不去特别设置该缓存区大小,一般都不是很多,不过大部分系统的TCPIP stack都不会超过64kByte。
在非阻塞方式下,一旦将数据提交到该缓存区,应用就直接返回成功了。

|
就算是TCP传输,也要自己做判断有就没成功,就是要自己做简单的协议去判断的,
最简单就是让接收方返回一个确认信号。

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












  • 相关文章推荐
  • 请教,进程通讯问题,除了父子进程能进行通讯外,任意两个进程都可以吗?
  • 送上100分问题请教,同时学习一下进程通讯问题,望各位不吝赐教
  • Qt下串口通讯程序请教
  • 请教关于socket通讯中客户端接收服务端信息的问题
  • 请教一个linux串口通讯问题?
  • socket双向通讯模式请教
  • 请教:linux下C++与Flash怎么通讯
  • 关于Applet和Servlet的通讯问题,紧急请教各位大侠。
  • 关于Applet和Servlet的通讯,请教各位大侠。紧急求助!!!
  • 请教大家一个socket服务端和客户端通讯的问题
  • 请教高手applet如何用socket和servlet进行通讯?(最好有项细代码)
  • 请教:利用socket通讯时,为何两边都无法读到数据????
  • linux新手,请教各位大人串口通讯问题(发送十六进制正常,接受数据错误)附源码
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3