2011-05-11 125 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

綁定在服務器應用程序中失敗。我使用的代碼是if(bind(sListen,(struct sockaddr *)&local, sizeof(local))== SOCKET_ERROR) printf(「bind()failed:%d \ n」,WSAGetLastError()); return 1; } listen(sListen,8); – Ershad 2011-05-11 12:22:49

+0

我在服務器中給出了相同的IP地址和端口號。那是問題嗎? – Ershad 2011-05-11 12:39:54

1

取決於您連接的內容。如果它是你的應用程序,套接字打開的事實證明你已經有了一個監聽套接字:只顯示接收到的信息(或者配置服務器上的信息以顯示它)。

處理網絡開發的另一個想法是使用wireshark監視實際網絡流量。

0

您的錯誤是「地址已被使用」。這意味着其他一些程序已打開端口。 您可以在命令行中看到使用「netstat」進行偵聽的程序列表。也許那 將幫助你弄清楚。

Wireshark是一個方便的應用程序,以查看通過網絡發送的內容。調試這些類型的程序非常方便。

相關問題