1. 최초 커밋
This commit is contained in:
217
TestServer/TestServer.cpp
Normal file
217
TestServer/TestServer.cpp
Normal file
@@ -0,0 +1,217 @@
|
||||
#include <stdio.h>
|
||||
#include <winsock2.h>
|
||||
|
||||
|
||||
#define BUFSIZE 100
|
||||
|
||||
#pragma comment(lib, "ws2_32.lib")
|
||||
|
||||
int main(int argc, char** argv){
|
||||
|
||||
WSADATA wsaData;
|
||||
SOCKET hServSock;
|
||||
SOCKADDR_IN servAddr;
|
||||
|
||||
|
||||
int arrIndex;
|
||||
int clntLen;
|
||||
SOCKET hClntSock;
|
||||
SOCKADDR_IN clntAddr;
|
||||
|
||||
|
||||
fd_set reads, tmps;
|
||||
|
||||
|
||||
char message[BUFSIZE];
|
||||
int strLen;
|
||||
TIMEVAL timeout;
|
||||
|
||||
if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
|
||||
fputs("WSADStartup() error", stderr);
|
||||
|
||||
|
||||
hServSock = socket(PF_INET, SOCK_STREAM, 0);
|
||||
if(hServSock == INVALID_SOCKET)
|
||||
fputs("socket() error", stderr);
|
||||
|
||||
argv[1] = "19999";
|
||||
|
||||
memset(&servAddr, 0, sizeof(servAddr));
|
||||
servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
servAddr.sin_port = htons(atoi(argv[1]));
|
||||
servAddr.sin_family = AF_INET;
|
||||
|
||||
|
||||
if(bind(hServSock, (SOCKADDR*)&servAddr, sizeof(servAddr)) == SOCKET_ERROR)
|
||||
fputs("bind() error", stderr);
|
||||
|
||||
if(listen(hServSock, 5) == SOCKET_ERROR)
|
||||
fputs("listen() error", stderr);
|
||||
|
||||
|
||||
FD_ZERO(&reads);
|
||||
FD_SET(hServSock, &reads); //hServSock<63><6B> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE>
|
||||
|
||||
|
||||
|
||||
while(1){
|
||||
tmps = reads;
|
||||
timeout.tv_sec = 5;
|
||||
timeout.tv_usec = 0;
|
||||
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ִٰ<D6B4> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
if(select(0, &tmps, 0, 0, &timeout) == SOCKET_ERROR)
|
||||
fputs("select() error", stderr);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD> <20><>ȸ.
|
||||
|
||||
for(arrIndex = 0; arrIndex < (int)reads.fd_count; arrIndex++){
|
||||
if(FD_ISSET(reads.fd_array[arrIndex], &tmps)){
|
||||
//<2F><><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
if(tmps.fd_array[arrIndex] == hServSock){
|
||||
clntLen = sizeof(clntAddr);
|
||||
hClntSock = accept(hServSock, (SOCKADDR*)&clntAddr, &clntLen);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> FD_SET<45><54> <20>߰<EFBFBD>.
|
||||
|
||||
FD_SET(hClntSock, &reads);
|
||||
printf("Ŭ<EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> %d \n", hClntSock);
|
||||
}else{ //<2F><><EFBFBD>۵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><>û Ȥ<><C8A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
strLen = recv(tmps.fd_array[arrIndex], message, BUFSIZE-1, 0);
|
||||
|
||||
if(strLen == 0){ //<2F><><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
FD_CLR(tmps.fd_array[arrIndex], &reads);
|
||||
closesocket(tmps.fd_array[arrIndex]);
|
||||
printf("Ŭ<EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> %d \n", tmps.fd_array[arrIndex]);
|
||||
}else{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
send(tmps.fd_array[arrIndex], message, strLen, 0);
|
||||
} //else
|
||||
|
||||
} //else
|
||||
} //if
|
||||
|
||||
} //for
|
||||
|
||||
} //while
|
||||
|
||||
|
||||
WSACleanup();
|
||||
return 0;
|
||||
} //main
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//#include <stdio.h>
|
||||
//#include <string.h>
|
||||
//#include <WinSock2.h>
|
||||
//
|
||||
//#pragma comment(lib, "ws2_32.lib")
|
||||
//
|
||||
//#define BUFSIZE 100
|
||||
//
|
||||
//void ErrorHandling(char *message);
|
||||
//
|
||||
//int main(int argc, char **argv)
|
||||
//{
|
||||
// WSADATA wsaData;
|
||||
// SOCKET hServSock;
|
||||
// SOCKADDR_IN servAddr;
|
||||
//
|
||||
// int arrIndex;
|
||||
// int clntLen;
|
||||
// SOCKET hClntSock;
|
||||
// SOCKADDR_IN clntAddr;
|
||||
//
|
||||
// fd_set reads, temps;
|
||||
//
|
||||
// char message[BUFSIZE];
|
||||
// int strLen;
|
||||
// TIMEVAL timeout;
|
||||
//
|
||||
// /*if(argc != 2)
|
||||
// {
|
||||
// exit(1);
|
||||
// }*/
|
||||
//
|
||||
// if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
|
||||
// ErrorHandling("e");
|
||||
//
|
||||
// hServSock = socket(PF_INET, SOCK_STREAM, 0);
|
||||
//
|
||||
// if(hServSock == INVALID_SOCKET)
|
||||
// ErrorHandling("e");
|
||||
//
|
||||
// servAddr.sin_family = AF_INET;
|
||||
// servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
// servAddr.sin_port = 19999;
|
||||
//
|
||||
// if(bind(hServSock, (SOCKADDR*)&servAddr, sizeof(servAddr))==SOCKET_ERROR)
|
||||
// ErrorHandling("e");
|
||||
//
|
||||
// if(listen(hServSock, 5)==SOCKET_ERROR)
|
||||
// ErrorHandling("e");
|
||||
//
|
||||
// FD_ZERO(&reads);
|
||||
// FD_SET(hServSock, &reads);
|
||||
//
|
||||
// printf("-1\n");
|
||||
//
|
||||
// while(1)
|
||||
// {
|
||||
// temps = reads;
|
||||
// timeout.tv_sec = 5;
|
||||
// timeout.tv_usec = 0;
|
||||
//
|
||||
// if(select(0, &temps, 0, 0, &timeout) == SOCKET_ERROR)
|
||||
// ErrorHandling("e");
|
||||
//
|
||||
// for(arrIndex=0; arrIndex < reads.fd_count; arrIndex++)
|
||||
// {
|
||||
// printf("1\n");
|
||||
// if(FD_ISSET(reads.fd_array[arrIndex], &temps))
|
||||
// {
|
||||
// printf("2\n");
|
||||
// if(reads.fd_array[arrIndex]==hServSock)
|
||||
// {
|
||||
// clntLen = sizeof(clntAddr);
|
||||
// hClntSock = accept(hServSock, (SOCKADDR*)&clntAddr, &clntLen);
|
||||
// FD_SET(hClntSock, &reads);
|
||||
// printf("Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> %d \n", hClntSock);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// strLen = recv(reads.fd_array[arrIndex], message, BUFSIZE-1, 0);
|
||||
// if(strLen == 0)
|
||||
// {
|
||||
// closesocket(temps.fd_array[arrIndex]);
|
||||
// //printf("Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> %d \n", reads.fd_array[arrIndex]);
|
||||
// printf("Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>\n");
|
||||
// FD_CLR(reads.fd_array[arrIndex], &reads);
|
||||
//
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// send(reads.fd_array[arrIndex], message, strLen, 0);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// WSACleanup();
|
||||
// return 0;
|
||||
//}
|
||||
//
|
||||
//void ErrorHandling(char *message)
|
||||
//{
|
||||
// fputs(message, stderr);
|
||||
// fputc('\n', stderr);
|
||||
// exit(1);
|
||||
//}
|
Reference in New Issue
Block a user