socket发送数据遇到的问题?
socket是阻塞模式,超时设为5秒,socket缓冲区大小为默认,连续调用两次send:
send(...); // 一次性发送1MB数据
send(...); //发送5个字节
我用的是ADSL宽带,发送速度只有70KB/S左右,
但第一个send立即成功返回了,难道是把1MB数据都放在socket缓冲区中了?十几秒后接收方收到了这1MB数据。
第二个send返回超时错误(错误号: 0x0000274c),好像是在等待第一个send中的数据完成发送,请问这是什么原因,如何解决?
send(...); // 一次性发送1MB数据
send(...); //发送5个字节
我用的是ADSL宽带,发送速度只有70KB/S左右,
但第一个send立即成功返回了,难道是把1MB数据都放在socket缓冲区中了?十几秒后接收方收到了这1MB数据。
第二个send返回超时错误(错误号: 0x0000274c),好像是在等待第一个send中的数据完成发送,请问这是什么原因,如何解决?
...全文
相关推荐
Socket粘包问题的3种解决方案,最后一种最完美.docx
Socket粘包问题的3种解决方案,最后一种最完美.docx
Linux的socket编程详解
创建准备阶段 服务器或客户端: 使用 gethostbyname() 来通过域名获取 IP 地址和端口 服务器: 创建 Socket 服务器: 使用 bind() 将套接字与特定的 IP 地址和端口绑定 客户端: 创建 Socket 连接阶段(UDP 不需要建立连接) 服务器: 使用 listen() 进入监听状态 服务器: 使用 accpet() 接收客服端的请求,返回客户端 Socket。(如无请求,会阻塞程序进行等待) 客户端: 使用 connect() 建立连接,并获得服务器 Socket。 数据交互阶段 服务器或客户端: 使用 wirte() 对对方 Socket 进行数据写入。 服务器或客户端: 使用 read() 对对方 Socket 进行数据读取。 UDP 情况下使用 sendto() 发送数据。 UDP 情况下使用 recvfrom() 接收数据。 关闭阶段 服务器或客户端: 使用 close() 关闭套接字 服务器或客户端: 使用 shutdow() 关闭连接(但不会关闭套接字)
Linux Socket编程
文档对Linux的Socket编程介绍的很详细,文档中包括Socket的语句和实例介绍
细细品味C#(Socket编程)
细细品味C#(Socket编程) 细细品味C#(Socket编程)
C++网络编程socket编程
C++网络编程socket编程


网络编程
