大佬教程收集整理的这篇文章主要介绍了Windows TCP套接字recv延迟,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_12@
如何让windows tcp socket正常工作(没有延迟)?@H_502_12@
PS:我玩过TCP_NODELAY& TcpAckFrequency已经. Wireshark显示一切正常.所以我认为这是一些Windows优化,应该关闭.@H_502_12@
读 – @H_502_12@
@H_502_12@
int WMaster::DataRead(void) { if (!open_ok) return 0; if (!checkSocket()) { PrintErrNo(); return 0; } iResult = recv(ConnectSocket,(char *)inpuT_Buff,sizeof(inpuT_Buff),0); nError=WSAGetLastError(); if(nError==0) return iResult; if(nError==WSAEWOULDBLOCK) return iResult; PrintErrNo(); return 0; }
初始化-@H_502_12@
@H_502_12@
ConnectSocket = INVALID_SOCKET; iResult = WSAStartup(MAKEWORD(2,2),&wsaData); ConnectSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCp); ZeroMemory(&clientservice,sizeof(clientservicE)); clientservice.sin_family = AF_INET; clientservice.sin_addr.s_addr = inet_addr( deviceName.tolatin1().constData() ); clientservice.sin_port = htons( port); iResult = setsockopt(ConnectSocket,IPPROTO_TCP,TCP_NODELAY,(char *) &flag,sizeof (int)); u_long iMode=1; iResult=ioctlsocket(ConnectSocket,FIONBIO,&iModE); iResult = ::connect( ConnectSocket,(SOCKADDR*) &clientservice,sizeof(clientservicE) );
@H_502_12@
bool WMaster::checkSocket(void) { socklen_t len = sizeof (int); int retval = getsockopt (ConnectSocket,SOL_SOCKET,SO_ERROR,(char*)(&valopt),&len ); if (retval!=0) { open_ok=false; return false; }; return true; }
以上是大佬教程为你收集整理的Windows TCP套接字recv延迟全部内容,希望文章能够帮你解决Windows TCP套接字recv延迟所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。