기본 소스도 준비 됐고, 컴파일 환경도 준비 됐으면, 구동시켜보자.

서버부터,
사용자 삽입 이미지

아주 간단하다.

클라이언트도 실행해 보자.
사용자 삽입 이미지

클라이언트도 간단하다.
사실은 몇 번의 실패 과정이 있었다. 컴파일만 해 보고, 뭐하는 프로그램(?)인지 몰라서...
소스의 설명을 보고 실행파일 명(rpipe)을 이해했다.
클라이언트에서, 서버로 명령을 보내서 수행한 결과를 클라이언트쪽에 보여주는 프로그램이다.

좀 복잡해 보이긴 해도, 꽤나 단순한 프로그램이다.

여기서 우리에게 필요한 내용을 서버쪽에 추가해야 한다.

필요한 명령어 목록을 정해보자.
(서버는 클라이언트의 명령에 의해서만 움직인다. 이렇게 하는 것이 나중에 제어하고 확장하기 쉬워진다. 자세한 것은 나중에 여력이 되면 다시 설명하기로 하고... 일단 넘어가자.)

참참참....

이 서버의 내용에 대해서 전혀 설명이 있었다.
이 서버는 숫자야구 게임 서버이다.

하는 역할은 다음과 같다.

1. 클라이언트의 접속을 받아 들인다. (당연히 네트웍 서버이므로)
2. 게임을 만든다. (서버가 숫자를 생각!하여 기억하고 있는다.)
3. 클라이언트에서 숫자가 오면 볼카운트를 확인해서 다시 돌려준다.
  3-1. 이때의 볼 카운트는 당연히 2의 과정에서 기억하고 있는 숫자와 3에서 넘어온 숫자를 비교한 볼카운트이다.
  3-2. 이 과정을 반복한다.
  3-3. 세자리 숫자를 기본으로 한다. 따라서 돌려주는 결과가 3S인 경우에는 서버에 횟수를 기록하게 된다.
  3-4. 기록을 할 때에는 클라이언트에서 제시한 이름을 기준으로 한다. 즉, 1의 과정 이후에 클라이언트에서 자신을 판별하는 이름을 보내야 기록이 된다는 것이다. (이름이 없으면 기록하지 않는다.)

대충 이 정도이다.
이러면 전송해야 할 문자열도 대충 정해진다.

* C->S : NAME <client name>
  - S->C : OK
* C->S : START
  - S->C : OK
* C->S : 123
  - S->C : 1S2B
.... (반복) ....
* C->S : 132
  - S->C : 3S0B 8    (8번만에 맞췄다.)

나머지 필요한 부분은 나중에 추가하기로 한다.
일단은 여기까지.
간단한 네트웍 서버를 만들 계획입니다.
목적은 간단합니다.
재미

재밌지 않다는 친구들이 몇 있었습니다.
그래서 그 친구들과 재밌는 일을 꾸며볼 수 있게 기반을 만들 겁니다.

이 서버는 그 작업을 위한 첫 단계입니다.

요구사항1
1. 간단한 리눅스 TCP서버
2. 인터넷 접속이 가능할 것
3. 테스트가 가능하게 TEXT데이터 전송할 것
4. 개인별기록을 남겨 둘 것
5. 인증기능 없음 (자유롭게 이용 가능, 단, 부하걸면 죽음!!!)

우선은 1단계 부터 진행할 계획. 진행하면서 더 필요한 것이 있으면 추가하지.
다음은 1단계 진행 후 확장할 내용. 언제인지는 모르겠지만...

요구사항2
1. DB(gdbm or mysql) 사용
2. Web Interface (CGI)
3. 실시간 통계
우선 기본이 되는 Socket Server를 찾는 것부터 시작했다.
(처음 부터 만들면 되긴 하지만, 조금 귀찮다. 괜찮은 서버를 하나 찾아서 수정하면서 시작하자.)

찾는 샘플의 조건:
1. blocking socket : 서버가 단순해 진다.
2. fork 버전 : 서버 관리및 운영이 단순해 진다.
3. 언어불문 : 가능하면 C/C++
4. client 테스트 버전이 있으면 우대(?)

구글링으로부터 시작했다.
socket sample
역시나 많이 나온다.
첫번째 자료를 본다.
훌륭하다.

흠... 아직 서버를 준비 안했다.
내부 서버를 만들어서 소스를 붙여 넣고 컴파일 한다.
http://www.cs.uic.edu/~troy/fall99/eecs471/socksample/samples.html

몇가지 문제가 있다.
C++소스긴 한데, cerr밖에는 C++이지 않다.
과감하게 C로 바꾼다.


줄이 좀 안맞는 것은 용서~~

테스트를 위한 클라이언트 소스도 있다.



여기에 Makefile만 있으면 컴파일 준비 완료


여기까지하면 기본적인 준비 완료.

+ Recent posts