#include<process.h>
#include<winsock2.h>
#include<stdio.h>
#define Num 10
char buf[128];
SOCKET client;
unsigned int _stdcall ThreadFun(PVOID Pm)
{
while(1)
{
gets(buf);
//itoa(x,buf,10);
send(client,buf,sizeof(buf),0);
if(strcmp(buf,"quit")==0) break;
recv(client,buf,sizeof(buf),0);
printf("[S] %s\n",buf);
}
return 0;
}
int main()
{
WSADATA wsaData;
SOCKADDR_IN addr;
HANDLE handle[Num];
if(WSAStartup(0x202,&wsaData)!=0){
printf("initiate Winsock DLL error\n");
return -1;
}
client =socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//af_inet,sock_stream,ipproto_tcp
printf("[I] server: ");
gets(buf);
addr.sin_family =AF_INET;
addr.sin_addr.s_addr =inet_addr(buf);
addr.sin_port =htons(6666);
if(connect(client,(SOCKADDR*)&addr,sizeof(addr))==SOCKET_ERROR)
{
printf("connect failed: %d\n",WSAGetLastError());
WSACleanup();
return -1;
}
printf("[I]");
for(int i=0;i<Num;i++)
handle[i]=(HANDLE)_beginthreadex(NULL,0,ThreadFun,NULL,0,NULL);
WaitForMultipleObjects(Num,handle,TRUE,INFINITE);
closesocket(client);
WSACleanup();
return 0;
}