想使程序在接收到数据后,立即发送携带ACK的应答数据。
希望实现流程为:
1。接收数据
2.立即发送应答数据
但是程序执行流程为:
1。接收数据
2.200毫秒后发送ACK
3。300毫秒后发送应答数据尝试通过SetSockOpt设置SOCKET,但现象依旧。
修改程序如下:
m_pSocket = new CListeningSocket(this);
if (m_pSocket->Create(788))
{
bool nZero_1=1;
int nZero_2=0; m_pSocket->SetSockOpt(TCP_NODELAY , (const char *)(&nZero_1), sizeof(nZero_1), SOL_SOCKET);
m_pSocket->SetSockOpt(SO_SNDBUF , (const char *)(&nZero_2), sizeof(nZero_2), SOL_SOCKET);
if (m_pSocket->Listen())
{
return TRUE;
}
}
else
return FALSE;
请教问题在何处?
希望实现流程为:
1。接收数据
2.立即发送应答数据
但是程序执行流程为:
1。接收数据
2.200毫秒后发送ACK
3。300毫秒后发送应答数据尝试通过SetSockOpt设置SOCKET,但现象依旧。
修改程序如下:
m_pSocket = new CListeningSocket(this);
if (m_pSocket->Create(788))
{
bool nZero_1=1;
int nZero_2=0; m_pSocket->SetSockOpt(TCP_NODELAY , (const char *)(&nZero_1), sizeof(nZero_1), SOL_SOCKET);
m_pSocket->SetSockOpt(SO_SNDBUF , (const char *)(&nZero_2), sizeof(nZero_2), SOL_SOCKET);
if (m_pSocket->Listen())
{
return TRUE;
}
}
else
return FALSE;
请教问题在何处?
解决方案 »
- VC中在ListView实现拖动单个条目到想要的位置
- 有用过MSCOMM32的吗,怎么用这个传送大的文件,哪位大侠帮帮忙 Thanks
- 为什么我写的ActiveX控件不能被IE加载?
- 为什么DLL导出类的析购函数不被调用?
- 请问accept()函数二次被调用时报错10014是何故,谢谢!(附函数)
- 如何从证书文件中取得公钥?
- 怎么把内存位图开得很大?
- 关于标签对话框的一个问题。
- ===菜鸟系列===:CSDN上没人了吗?为何无人能回答我的问题????????????
- 请问哪位高手高手高高手做过VC IDE的add-in????
- 用VC6 实现SOCKET序列化
- 急等:vc++访问sql server2000 出现问题
TCP_NODELAY BOOL Disables the Nagle algorithm for send coalescing.
1 included for backward compatibility with Windows Sockets 1.1
m_pSocket->SetSockOpt(TCP_NODELAY , (const char *)(&nZero_1), sizeof(nZero_1), IPPROTO_TCP1);
还是 IPPROTO_TCP ??
前者不能编译
BOOL option=TRUE;
BOOL ret=SetSockOpt(TCP_NODELAY,&option,sizeof(option),IPPROTO_TCP);
if(ret==FALSE)
{
AfxMessageBox("Sets the sending delay time error!");
}