1. 최초 커밋

This commit is contained in:
2021-05-02 15:31:55 +09:00
commit eddba8f209
44 changed files with 4131 additions and 0 deletions

217
TestServer/TestServer.cpp Normal file
View 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);
//}