浅谈SOCKET-TCP编程中send函数的机制
2011-01-19 17:05
225 查看
1.send函数什么时候返回?
不准确的说,当你要send的数据成功放入发送缓冲区的时候,就返回了,这个send实际是指把数据发送给了TCP的协议栈。
2.既然send函数不保证送达,那么为什么说TCP是可靠传输?
是的,你把数据交给TCP之后,TCP就保证数据准确无误地传送到对方,但是TCP不是万能的,比如突然断网时就有数据还在缓存里没发出去。
3.用TCP发送数据时,需要对方返回确认信息来判断是否全部收到么?
分情况,如果只是发送数据,而且支持续传,那么可以不关心这一点。
如果要保证数据完整的传输,也可以根据TCP是否正常关闭来检测。
如果数据传输完后,连接还要继续传送其他数据,那么最好是返回一个确认信息。
但是个人推荐做好允许意外断开,比如断点续传的方式。
不准确的说,当你要send的数据成功放入发送缓冲区的时候,就返回了,这个send实际是指把数据发送给了TCP的协议栈。
2.既然send函数不保证送达,那么为什么说TCP是可靠传输?
是的,你把数据交给TCP之后,TCP就保证数据准确无误地传送到对方,但是TCP不是万能的,比如突然断网时就有数据还在缓存里没发出去。
3.用TCP发送数据时,需要对方返回确认信息来判断是否全部收到么?
分情况,如果只是发送数据,而且支持续传,那么可以不关心这一点。
如果要保证数据完整的传输,也可以根据TCP是否正常关闭来检测。
如果数据传输完后,连接还要继续传送其他数据,那么最好是返回一个确认信息。
但是个人推荐做好允许意外断开,比如断点续传的方式。
相关文章推荐
- 浅谈socket TCP编程中connect的一些坑
- 浅谈 TCP/IP 网络编程中 socket 的行为
- TCP socket编程中send函数
- 浅谈网络编程之TCP、HTTP和SOCKET
- 【项目】基于TCP/IP的socket编程之心跳机制
- Windows下C语言的Socket编程例子(TCP和UDP)
- TCP--UDP常用代码(socket编程--网上搜索自己整理的)
- 基于Socket的UDP和TCP编程介绍
- 【转】 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架2
- Java系列-Socket网络编程,TCP/IP和Http等网络协议理解
- TCP Socket编程(非阻塞模式)(C++)
- 网络编程Socket之TCP之close/shutdown具体解释(续)
- python网络编程之TCP通信实例和socketserver框架使用例子
- 基于Socket编程,模拟TCP部分协议字段编程
- 基于Socket的UDP和TCP编程介绍
- TCP IO复用 select并发服务端 Linux socket编程入门(3)
- window下TCP socket编程
- Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互
- 聊聊Socket、TCP/IP、HTTP、FTP及网络编程
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架