소켓 - 에코서버프로그램에서 이해가 안되는 부분이있는데요...
글쓴이: jee9894 / 작성시간: 월, 2018/05/14 - 11:01오전
간단한 에코서버 프로그램입니다
while (1) {
memset(&ClientSockInfo, 0, sizeof(struct sockaddr_in));
SockLen = sizeof(struct sockaddr_in);
ClientSocket = accept(EndpointSocket, (struct sockaddr *)&ClientSockInfo, &SockLen);
if (ClientSocket == INVALID_SOCKET) {
printf("Accept Error\r\n");
closesocket(EndpointSocket);
WSACleanup();
return 1;
}
printf("Accept Client\r\n");
Readn = recv(ClientSocket, ReadBuffer, MAX_PACKETLEN, 0);
if (Readn > 0) {
Writen = send(ClientSocket, ReadBuffer, Readn, 0);
}
else {
printf("Read Error\r\n");
}
closesocket(ClientSocket);
}이 부분에서 맨 밑에 closesocket부분이 있기때문에 제 생각으로는 문자열 하나만 받고 그대로
클라이언트에 보내줄때 Accept Client가 계속 찍혀서 나와야 되는거 아닌가요?
그런데 실제로 해보니 Accept Client는 한번만 찍히고 계속해서 에코서버프로그램이 동작하더라고요
이부분이 이해가 잘 가질 않습니다 설명 부탁드리겠습니다
Forums:


teststesteste
클라이언트쪽 소켓을 봐야알수있겠지만 클라이언트쪽에서 연결이 끊어지면 재접속 루틴이 있을거같은데요..
댓글 달기