windows上异步socket怎样正确的发送
send,我的理解是把数据发送到缓冲区,到了缓冲区后由TCP协议来保证数据完整的发送过去。
标准的做法是否必须得像下面这样
标准的做法是否必须得像下面这样
int SendRequest(int socket_fd,const char*send_buffer,long size)
{
int ret = -1;
int Total = 0;
int lenSend = 0;
struct timeval tv;
tv.tv_sec = 3;
tv.tv_usec = 500;
fd_set wset;
while(1)
{
FD_ZERO(&wset);
FD_SET(socket_fd, &wset);
if(select(socket_fd + 1, NULL, &wset, NULL, &tv) > 0)//3.5秒之内可以send,即socket可以写入
{
lenSend = send(socket_fd,send_buffer + Total,size -Total,0);
if(lenSend == -1)
{
ret = SEND_FAIL;
break;
}
Total += lenSend;
if(Total == size)
{
ret = OK;
break;
}
}
else //3.5秒之内socket还是不可以写入,认为发送失败
{
ret = SEND_FAIL;
break;
}
}
return ret;
}
...全文
相关推荐
vc 异步多线程socket 包括服务端和客户端
Windows消息机制:异步Socket操作通常通过消息驱动实现,当Socket事件发生时,系统会发送消息到应用程序,由消息循环处理这些事件。4.
深入理解Socket编程:阻塞与非阻塞模式
本文详细解读了在Socket编程中阻塞与非阻塞模式的使用场景和效果。首先介绍了两种模式的特点,接着通过实例探讨了发送0字节数据和connect函数在不同模式下的行为。文章深入分析了Linux和Windows平台上异步connect技术的差异,并讨论了在连接成功后立即接收数据的场景。
Windows环境下socket编程(C语言编写)
- 直接运行意味着项目配置正确,包括正确的编译器选项、链接器设置以及库依赖。综上所述,这个项目展示了如何在Windows环境下使用C语言进行基本的TCP Socket通信。
window下c++socket 异步实现
Socket是网络编程中的一个接口,它允许应用程序通过网络发送和接收数据。在Windows系统中,我们可以使用Winsock(Windows Socket API)来实现Socket通信。
基于windows的socket编程
消息传递机制在此扮演关键角色,确保正确地将信息路由到正确的目标。在Windows中,我们可以结合`WSASelect`和`send`/`recv`函数来实现这一点。


网络编程
