2011-05-11 122 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是一个方便的应用程序,以查看通过网络发送的内容。调试这些类型的程序非常方便。

相关问题