2011-05-11 3 views
0

포트 번호 5152의 IP 주소 127.0.0.1로 데이터를 보내고 있습니다. 소켓 프로그래밍을 통해 데이터 ("Hello world")를 보내고 있습니다. 51 바이트를 보낸 것으로 확인 응답을 받았습니다. 그러나 위의 IP 주소에서 수신 된 데이터가 올바른지 어떻게 알 수 있습니까?특정 포트에서 IP 주소로 전송 된 데이터를 어떻게 확인합니까?

나는 서버 응용 프로그램을 만들었으며 여기서 동일한 IP와 포트 번호를 사용하고 있습니다.

// Create our listening socket 
// 
sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); 
if (sListen == SOCKET_ERROR) 
{ 
    printf("socket() failed: %d\n", WSAGetLastError()); 
    return 1; 
} 
// Select the local interface and bind to it 
// 
if (bInterface) 
{ 
    local.sin_addr.s_addr = inet_addr(szAddress); 
    if (local.sin_addr.s_addr == INADDR_NONE) 
     usage(); 
} 
else 
    local.sin_addr.s_addr = htonl(INADDR_ANY); 
local.sin_family = AF_INET; 
local.sin_port = htons(iPort); 

if (bind(sListen, (struct sockaddr *)&local, 
     sizeof(local)) == SOCKET_ERROR) 
{ 
    printf("bind() failed: %d\n", WSAGetLastError()); 
    return 1; 
} 

바인드가 10048 오류로 실패합니다.

답변

0

데이터를 보냈습니다. 이제 받으셔야합니다!

동일한 상자에서 포트 5152를 수신하고 클라이언트에서 수신 한 내용을 표시하는 서버를 만들어야합니다.

+0

서버 응용 프로그램에서 바인딩이 실패합니다. 내가 사용하는 코드는 다음과 같습니다. (bind (sListen, (struct sockaddr *) & local, sizeof (local)) == SOCKET_ERROR) { printf ("bind() failed : % d \ n", WSAGetLastError()); return 1; } 듣기 (sListen, 8); – Ershad

+0

서버에 동일한 IP 주소와 포트 번호를 부여했습니다. 그게 문제 야? – Ershad

1

연결 대상에 따라 다릅니다. 응용 프로그램의 경우 소켓이 열리는 사실에 따라 수신 대기 소켓이 이미 있음을 알 수 있습니다.받은 소켓을 표시하거나 서버에 추적을 표시하도록 구성합니다.

네트워크 개발을 다루는 또 다른 아이디어는 wireshark를 사용하여 실제 네트워크 트래픽을 모니터링하는 것입니다.

0

"주소는 이미 사용 중"입니다. 즉, 다른 프로그램에서 포트가 열려 있음을 의미합니다. "netstat"를 사용하여 듣고있는 프로그램 목록을 명령 줄에서 볼 수 있습니다. 아마 그 당신이 그것을 파악하는 데 도움이됩니다.

Wireshark은 네트워크를 통해 전송되는 것을 확인하는 편리한 응용 프로그램입니다. 이러한 종류의 프로그램을 디버깅하는 데 매우 편리합니다.

관련 문제