// homrun_c.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
#define PORT 8844
#define IPNUM "127.0.0.1"
SOCKET s;
HANDLE hMutex;
void Sock_Add();
void Sock_Run();
int _tmain(int argc, _TCHAR* argv[])
{
Sock_Add();
Sock_Run();
return 0;
}
void Sock_Add()
{
WSADATA wsadata;
if ( WSAStartup( MAKEWORD(2,2), &wsadata) != 0 )
{
printf("Can't Initialize Socket !\n");
return ;
}
s = socket( PF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addr = { 0 };
addr.sin_family = AF_INET;
addr.sin_port = htons( PORT );
addr.sin_addr.s_addr = inet_addr(IPNUM);
if ( connect( s, (SOCKADDR*)&addr, sizeof(addr)) == -1 )
{
printf("Can't Connect Server\n");
return;
}
printf("Connected Server \n");
}
void Sock_Run()
{
char num;
char SendBuf[1024];
char s1[1024];
char num1;
while(1)
{
printf("홈런 게임에 오신것을 환영합니다\n");
printf("1.Game 시작\n");
printf("2.Game 정보\n");
printf("3.종료\n");
num=getchar();
fflush(stdin);
int nRead;
switch(num)
{
case '1':
send(s, &num, sizeof(num), 0);
nRead = recv( s, (char*)&SendBuf, sizeof(SendBuf), 0);
if ( nRead <= 0) break;
printf("%s\n",SendBuf);
while(1)
{
while(1)
{
scanf("%s",s1);
if(strlen(s1)==3)
{
send(s, s1, sizeof(s1), 0);
break;
}
printf("%s\n",SendBuf);
}
nRead = recv( s, s1, sizeof(s1), 0);
if ( nRead <= 0) break;
if(s1[0]=='1')
printf("아웃\n");
else printf("%c 스트라이크 %c 볼 \n",s1[1],s1[2]);
if(s1[1]=='3')
break;
}
printf("클리어\n");
fflush(stdin);
printf("계속 하시겠습니까?(y)");
num1=getchar();
if(num1!='y')
num='3';
system("cls");
fflush(stdin);
break;
case '2':
break;
}
if(num=='3')
{
send(s,&num ,sizeof(num),0);
closesocket(s);
WSACleanup();
break;
}
}
}