스톤에이지 8.0 구축 가이드 11
========================================================
11. 실행 — 핸드셰이크 검증
========================================================
"서버 연결 중"에서 멈출 때, 클라 문제인지 서버 문제인지
가르는 가장 빠른 방법은 핸드셰이크 첫 바이트를 직접 받아보는
것입니다. 지수팩의 'S' vs 우리 서버 'N' 불일치도 여기서 잡힘.
--------------------------------------------------------
[ PowerShell 핸드셰이크 테스트 ]
--------------------------------------------------------
$c = New-Object System.Net.Sockets.TcpClient
$c.Connect('172.24.10.140', 9065)
$buf = New-Object byte[] 4
$c.GetStream().Read($buf, 0, 4)
"byte0=0x{0:X2} = '{1}'" -f $buf[0], [char]$buf[0]
- 기대값: 'N' (0x4E)
- 'S'(0x53) 가 보이면 지수팩 변종 서버이거나 버전 불일치.
우리 환경은 GMSV net.c 가 'N' 을 보내야 정상.
--------------------------------------------------------
[ 결과 해석 ]
--------------------------------------------------------
- 'N' 수신 됨 : 서버는 정상. 문제는 클라/IP/방화벽 쪽.
- 연결 자체 실패: 포트 미개방 또는 IP 틀림(list.lua 확인).
- 'S' 수신 됨 : 서버 버전 문자가 잘못됨(net.c:2299 확인).
--------------------------------------------------------
[ 버전 문자 일치 규칙 ]
--------------------------------------------------------
서버 net.c (mess[0]='N') <-> 클라 _SA_VERSION ('N')
둘 중 하나라도 다르면 100% 무한 대기. 지수팩 클라가 'S'를
하드코딩한 게 대표적 사고 원인(20번/23번 파일 참조).
--------------------------------------------------------
다음: 12_실행_수동디버깅.txt

야추리아 님의 최근 댓글