-
-
[求助]VC socket 远程主机强迫关闭了一个现有的连接。。。
-
发表于: 2010-12-8 15:05 6502
-
我写了一个 简单的通讯程序 可是数据量多了的还总是会出现
远程主机强迫关闭了一个现有的连接。。。
大家帮我看看。那里写的不好。。可以优化下。
我的目的就是。。。不出现任何的错误。。。出现错误。。。也会 send 返回给我。
程序流程 主程序 - 》 注入DLL 到目标线程 (目标进程可能有 50多个进程以上,每个进程注入一个DLL、主程序然后 SOCKET 通讯)
我大概注入了 50多个线程后。。。可能 TCP太忙了。。。总是会出现
远程主机强迫关闭了一个现有的连接。。。
关于 MSG_PEEK,数据没有从缓存里面取出来哦。
这个。是这样的。。。我同时可能 上百条线程同时访问。。。
如果不用 MSG_PEEK 的话 在 netstat -an 里面就会看到 N多的未关闭连接。。
用了 MSG_PEEK 就没有了
远程主机强迫关闭了一个现有的连接。。。
大家帮我看看。那里写的不好。。可以优化下。
我的目的就是。。。不出现任何的错误。。。出现错误。。。也会 send 返回给我。
程序流程 主程序 - 》 注入DLL 到目标线程 (目标进程可能有 50多个进程以上,每个进程注入一个DLL、主程序然后 SOCKET 通讯)
我大概注入了 50多个线程后。。。可能 TCP太忙了。。。总是会出现
远程主机强迫关闭了一个现有的连接。。。
关于 MSG_PEEK,数据没有从缓存里面取出来哦。
这个。是这样的。。。我同时可能 上百条线程同时访问。。。
如果不用 MSG_PEEK 的话 在 netstat -an 里面就会看到 N多的未关闭连接。。
用了 MSG_PEEK 就没有了
VOID __cdecl TCPLient(LPVOID dummy) { int sx_client_port = 42000 + GetCurrentProcessId();//客户端监听端口 //初始化winsock WSADATA wsad; WSAStartup(MAKEWORD(1,1),&wsad); SOCKET slisten=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); SOCKET sconnect; SOCKADDR_IN sin; sin.sin_family=AF_INET; sin.sin_port=htons(sx_client_port); sin.sin_addr.s_addr=inet_addr("127.0.0.1"); bind(slisten,(SOCKADDR*)&sin,sizeof(SOCKADDR)); listen(slisten,10); SOCKADDR_IN c_addr; int addr_len = sizeof(SOCKADDR); int timeout=3000; while(true) { try { sconnect=accept(slisten,(SOCKADDR*)&c_addr,&addr_len); //通过监听套接字创建连接套接 setsockopt(sconnect, SOL_SOCKET, SO_SNDTIMEO, (char*)&timeout, 4);//发送时限 setsockopt(sconnect, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, 4);//接收时限 recv(sconnect,(char*)&msg,sizeof(msg),MSG_PEEK);//接收数据 int returnLength; char* rc = working(&returnLength);//处理接收的数据 send(sconnect,rc,returnLength,0);//返回数据 closesocket(sconnect); } catch(...) { } } }
赞赏
他的文章
- [求助]完美的PP驱动保护,没一点头绪,断点就重启电脑。 16622
- [求助] WIN7 x64 环境下,SSDT,内核钩子相关。。。 17843
- 失效。。。。。。。。。。。 3780
- [求助]清零操作,,不知道怎么恢复。。 15929
- [讨论] ASProtect SKE 不能保护DLL 3245
看原图
赞赏
雪币:
留言: