사용자 삽입 이미지

프로그램시작시 서버 ,클라이언트를 결정할수있다.

사용자 삽입 이미지

선택후의 화면 서버가가진정보대로 클라이언트에서도 똑같이 뿌려준다.

[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

Ping?!

2009/07/02 04:22 / 기술연구부/Server
사용자 삽입 이미지
- 핑(Ping)이란?
 Packet Internet Groper의 약자로 패킷(전송단위)이 지정한 IP주소에대한 통신이 원할히 통신되는지와
상대방의 응답여부, 걸리는시간을 알수있습니다.

- 핑을 하는 경우
1. 상대방의 컴퓨터의 IP에대해 ping을 수행하게하여 TCP/IP가 정상적으로 작동하는지 테스트
2. 라우터가 실행중인지 로컬라우터에 ping수행해서 작동여부 알아냄

- 핑테스트 사진
cmd ping Test

cmd ping Test

[##_kaAmo_##]

Raknet ping Test

Raknet Ping Test

Posted by 랜스.

Leave your greetings here.

TCP? UDP?

2009/06/03 03:48 / 기술연구부/Server
사용자 삽입 이미지
 -TCP 와 UDP 의차이점
   TCP는 초기의 연결시간이 필요하다. 하지만 UDP는 연결과정이 필요없다.
  (TCP는 연결지향형 , UDP는 비연결지향형)
  
   TCP는 데이터의 수신여부를 반드시 검사한다. 하지만 UDP는 검사하지않는다.
  (TCP는 안전성, UDP는 신속성)
  
    TCP는 UDP에 비해 오버헤드가 발생한다.
  (수신여부를 검사해야함으로)

-둘중하나만 사용해도 되는데 왜 두가지를 다 지원이되는걸까?  
  일단 아래의 표를 봐보자.
사용자 삽입 이미지

   이메일이나 채팅과 같이 데이터의 수신이 보장되어야하는 경우(속도의비중이적은경우)
  TCP를 사용하여야하고,
   실시간으로 정보가 갱신되어야 하는 게임은 데이터의 수신을 몇번 놓치더라도(수신비보장)
  실시간으로 게임을 실행(속도성필요)해야하기 때문에 UDP를 사용한다.

   이렇듯이 TCP나 UDP나 각각의 특징을 가지고있기때문에 두가지다 지원되는것이다.
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/75
  2. 아리새의펜촉 2009/06/03 09:16  Modify/Delete  Reply  Address

    깔끔하게 정리하셨네요.

Errors in Numerical Order

WSABASEERR (0) No Error
WSAEINTR (10004) Interrupted system call
WSAEBADF (10009) Bad file number
WSAEACCES (10013) Permission denied
WSAEFAULT (10014) Bad address
WSAEINVAL (10022) Invalid argument
WSAEMFILE (10024) Too many open files
WSAEWOULDBLOCK (10035) Operation would block
WSAEINPROGRESS (10036) Operation now in progress
WSAEALREADY (10037) Operation already in progress
WSAENOTSOCK (10038) Socket operation on non-socket
WSAEDESTADDRREQ (10039) Destination address required
WSAEMSGSIZE (10040) Message too long
WSAEPROTOTYPE (10041) Protocol wrong type for socket
WSAENOPROTOOPT (10042) Bad protocol option
WSAEPROTONOSUPPORT (10043) Protocol not supported
WSAESOCKTNOSUPPORT (10044) Socket type not supported
WSAEOPNOTSUPP (10045) Operation not supported on socket
WSAEPFNOSUPPORT (10046) Protocol family not supported
WSAEAFNOSUPPORT (10047) Address family not supported by protocol family
WSAEADDRINUSE (10048) Address already in use
WSAEADDRNOTAVAIL (10049) Can't assign requested address
WSAENETDOWN (10050) Network is down
WSAENETUNREACH (10051) Network is unreachable
WSAENETRESET (10052) Net dropped connection or reset
WSAECONNABORTED (10053) Software caused connection abort
WSAECONNRESET (10054) Connection reset by peer
WSAENOBUFS (10055) No buffer space available
WSAEISCONN (10056) Socket is already connected
WSAENOTCONN (10057) Socket is not connected
WSAESHUTDOWN (10058) Can't send after socket shutdown
WSAETOOMANYREFS (10059) Too many references, can't splice
WSAETIMEDOUT (10060) Connection timed out
WSAECONNREFUSED (10061) Connection refused
WSAELOOP (10062) Too many levels of symbolic links
WSAENAMETOOLONG (10063) File name too long
WSAEHOSTDOWN (10064) Host is down
WSAEHOSTUNREACH (10065) No Route to Host
WSAENOTEMPTY (10066) Directory not empty
WSAEPROCLIM (10067) Too many processes
WSAEUSERS (10068) Too many users
WSAEDQUOT (10069) Disc Quota Exceeded
WSAESTALE (10070) Stale NFS file handle
WSASYSNOTREADY (10091) Network SubSystem is unavailable
WSAVERNOTSUPPORTED (10092) WINSOCK DLL Version out of range
WSANOTINITIALISED (10093) Successful WSASTARTUP not yet performed
WSAEREMOTE (10071) Too many levels of remote in path
WSAHOST_NOT_FOUND (11001) Host not found
WSATRY_AGAIN (11002) Non-Authoritative Host not found
WSANO_RECOVERY (11003) Non-Recoverable errors: FORMERR, REFUSED, NOTIMP
WSANO_DATA (11004)* Valid name, no data record of requested type
WSANO_ADDRESS (11004)* No address, look for MX record


출처:http://www.sockets.com

[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

사용자 삽입 이미지
hMutex는 제가 임의로 만든 뮤텍스 관련 클래스입니다.
쓰레드 사용시 여러개의 프로세스가 한번에 접근해서 예외가 생기지않게하기위해
동기화를 합니다. 하지만 이런 동기화과정중에서 동기화를 종료하지않고
그 루틴을 빠져나가게된다면 그 동기화부분이 종료되지않았으므로 다른프로세스가
그 루틴입구에서 계속 대기를 하고있는것을 데드락 상태라고합니다.

............

써놓고 왜쓴거지 ... 그냥 개념적정리!!
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/65
  2. 몽상가 2009/05/06 10:06  Modify/Delete  Reply  Address

    사실 오토락 같은 계열이 해결가능한 부분이지만, 이건 제어가 가능한 범위에서만 사용가능한것같습니다. 실제 핸들이 종료된 상태에서 오토락 해제가 시도 될때 오류가 날 수 있기 때문에, 뭐든지 락 계열은 정책이 잘 수립된 상태에서 사용하는게 좋을 것 같습니다.

    사실 요번에 만드는 건 로직 쓰레드는 1 쓰레드로 하고, IO 만 N 개 쓰레드로 확장하는 식으로 개인 프로젝트를 준비중입니다.

    그리고 어느 정도 돌아간다면, 로직스레드를 병렬로 실행 가능하게 확장 하려고 합니다.
    중간중간 일지를 남겨서 포스팅 하겠습니다^^

class 클래스명

{    

public:

      virtual LONG 쓰레드를실행하는함수 ();    


      static DWORD WINAPI 쓰레드로돌릴멤버함수 (LPVOID lpArg);   // 정적멤버


     HANDLE m_hThread;

}


LONG 클래스명:: 쓰레드를실행하는함수 (LPCTSTR lpszDevice)

{

 if (m_hThread == 0)
 {
  DWORD dwThreadId = 0;
  m_hThread = _beginthreadex(NULL,0, 쓰레드로돌릴멤버함수,LPVOID(this),0,0);

                                                       // 쓰레드를 생성하면서 this를 아규먼트로 넘김

    ...
 }}


[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/64
  2. 날자고도 2009/05/04 17:56  Modify/Delete  Reply  Address

    어떤효과가 있나요?

    • 랜스 2009/05/05 20:51  Modify/Delete  Address

      제가 쓰레드를 쓸떄 쓰레드 함수에 넘기는 인자로 일일히 필요한 값들을
      따로따로 구조체를 만들어서 포인터로 넘겨줬었는데 책보다 보니 이런식으로 함수호출법을 나타내고 나아가 쓰레드클래스를 상속받게 해줄수있을것같습니다.