如何检查发送到特定端口上的IP地址的数据?

时间:2011-05-11 12:10:54

标签: c++ sockets network-programming

我将数据发送到端口号为5152的IP地址127.0.0.1。通过套接字编程,我发送数据(“Hello world”)。我收到51 Bytes发送的确认。但我如何知道上述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错误。

3 个答案:

答案 0 :(得分:1)

取决于您要连接的内容。如果它是您的应用程序,套接字打开的事实证明您已经有一个侦听套接字:只显示它接收的内容(或配置服务器上的跟踪以显示它)。

处理网络开发时的另一个想法是使用wireshark监控实际的网络流量。

答案 1 :(得分:0)

您发送了数据 - 现在需要接收数据!

您需要在同一个盒子上创建一个侦听端口5152的服务器,并让它显示从您的客户端收到的内容。

答案 2 :(得分:0)

您的错误是“地址已在使用中”。这意味着其他一些程序打开了端口。 您可以在命令行中看到使用“netstat”监听的程序列表。或许那样 会帮助你搞清楚。

Wireshark是一个方便的应用程序,可以查看通过网络发送的内容。非常方便调试这些类型的程序。