달력

52025  이전 다음

  • 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

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

Posted by CokeBell
|