1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
void main()
{
printf("############################## SERVER #####################################\n\n");
temp = WSAStartup(MAKEWORD(2,2),&data);
if(temp != NO_ERROR){
printf("Error in WSAStartup");
system("PAUSE");
}
ZeroMemory(&hints,sizeof(hints));
hints.ai_family= AF_INET;
hints.ai_protocol = IPPROTO_TCP;
hints.ai_socktype = SOCK_STREAM;
sockAdd = &hints;
temp = getaddrinfo(NULL,DEFAULT_PORT,&hints,&sockAdd);
if (temp < 0 ){
printf("Getaddrinfo error");
system("PAUSE");
}
master_sock = socket(sockAdd->ai_family,sockAdd->ai_socktype,sockAdd->ai_protocol);
if (master_sock == INVALID_SOCKET){
printf("Error in creating socket");
system("PAUSE");
}
if(setsockopt (master_sock,SOL_SOCKET,SO_REUSEADDR,&val,sizeof(val)) == SOCKET_ERROR){
printf("error with setsockopt func");
system("PAUSE");
}
temp = bind(master_sock,sockAdd->ai_addr,sockAdd->ai_addrlen);
if(temp == SOCKET_ERROR){
printf("Error in bind %d\n",WSAGetLastError());
system("PAUSE");
}
temp = listen(master_sock,3);
if (temp < 0)
{
printf("Error with listen func");
system("PAUSE");
}
sockaddr from;
SOCKET client;
while(true){
FD_ZERO(&fds);
FD_SET(master_sock,&fds);
if(select(4,&fds,NULL,NULL,NULL) > 0){
if(FD_ISSET(master_sock,&fds)){
client = accept(master_sock,(sockaddr *)&from,(int *)sizeof(from));
do{
sendResult = recv(client,recvBuffer,sizeof(recvBuffer),NULL);
printf("Byte recv %d",sendResult);
}while (sendResult > 0);
}
}
}
}
|