想使程序在接收到数据后,立即发送携带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;
请教问题在何处?
解决方案 »
- 高分求仿飞鸽文件传输功能实现的代码?
- mfc debug 里面的exe文件运行就出现 0x00000000指令引用的0x00000000内存,该内存不能 read
- vc++中取字符串的前几位的函数是什么?
- VC里如何隐藏和显示客户区的内容
- CToolBar文本置位问题
- 求 ---MFC Windows程序设计(第二版)(中文版) 附书源码
- 如何将当前屏幕保存为24位位图(或dib)
- 请教如何在在包含Button的对话框程序中如何让对话框接收键盘消息?
- 哪位懂得测试工具Codeview在哪下载?(来着有分)
- 怎样设置 clistctrl 中的字体?
- 用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!");
}