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);
//}

View File

@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="TestServer"
ProjectGUID="{F41C2C14-83A7-4C8C-8198-559B58F945D1}"
RootNamespace="TestServer"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\$(ProjectName)_D.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="<22>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\TestServer.cpp"
>
</File>
</Filter>
<Filter
Name="<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="<22><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>