클라이언트는 제대로 동작하고 있나요? 클라이언트에서 connect() 함수가 호출되고 있나요?
kkk 님이 쓰신 글 :
: 소켓통신을 배우는 중입니다
: 하나의 pc에서 서버에서 클라이언트로 문자열을 보내는 간단한 코드를 작성하고 있는데요
: 쉬운 문제인것 같은데 안되는 이유를 모르겠어요
: 아래 코드가 서버 코드인데요 listen 함수까지는 정상 진행이 된것같은데 accept 함수까지 와서 다음으로 진행이 안됩니다.
: 프로그램은 멈춰서 먹통이 되구요
: 이유가 뭔지 모르겠어요 고수님들 도와주세요
:
: char message[] = "Hello World!";
: int szClntAddr;
: char * addr = 제pc ip;
:
: if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
: {
: ShowMessage("Server WSAStartup Error");
: return 0;
: }
: servSock = socket(PF_INET, SOCK_STREAM, 0);
: if(servSock == INVALID_SOCKET)
: {
: ShowMessage("Server Socket Error");
: return 0;
: }
: memset(&servAddr, 0, sizeof(servAddr));
: servAddr.sin_family = AF_INET;
: servAddr.sin_addr.s_addr = inet_addr(addr);
: servAddr.sin_port = htons(8000);
:
: if(bind(servSock, (SOCKADDR*)&servAddr, sizeof(servAddr)) == SOCKET_ERROR)
: {
: ShowMessage("Server Bind Error");
: return 0;
: }
: if(listen(servSock, 5) == SOCKET_ERROR)
: {
: ShowMessage("Server Listen Error");
: return 0;
: }
: szClntAddr = sizeof(clntAddr);
:
: clntSock = accept(servSock, (SOCKADDR*)&clntAddr, &szClntAddr); // 이부분까지 와서 진행이 안되고 멈춰있습니다.
: if(clntSock == INVALID_SOCKET)
: {
: ShowMessage("Server Accept Error");
: return 0;
: }
: send(clntSock, message, sizeof(message), 0);
:
: closesocket(servSock);
: closesocket(clntSock);
: WSACleanup();
:
: return 1;
|