|
IOCP서버를 짜면서 접속을 받는 부분을 짜는데요..
접속을 받는 클레스 3000개(안에 소켓이랑 OVERLAPPED등등 여러가지 있습니다..)를 아래와 같이 extern 선언했습니다.
헤더에 extern TPlayer clPlayer[MAX_USER];
CPP에 TPlayer clPlayer[MAX_USER];
그랬더니, clPlayer[0]만 제대로 받고, clPlayer[1]부터는 클레스 내부함수에 있는 WSARecv()에서 WSAEFAULT 에러가 뜨더군요..
몇일 동안 헤매다가 extern 대신 static으로 선언해봤습니다.
헤더에 static TPlayer clPlayer[MAX_USER];
CPP의 선언부는 삭제...
그랬더니 멀쩡하게 접속을 잘 받네요.. 전에는 extern으로 해도 잘 되던 것이었는데, 지금 짜는건 왜 이런지 모르겠네요.. (기초가 빈약하다보니.. -.-)
답변 부탁합니다.
|