【问题标题】:List of connections shows 0.0.0.0 in C socket programming [closed]连接列表在 C 套接字编程中显示 0.0.0.0 [关闭]
【发布时间】:2015-10-17 23:34:21
【问题描述】:

我的代码接受传入的连接并将它们存储在一个数组中。

if(i == sockServer){
                    //handle incoming connection
                    addrlen = sizeof(remoteaddr);
                    sockClient = accept(sockServer, (struct sockaddr*)&remoteaddr, &addrlen);
                    if(sockClient < 0){
                        perror("Accept failed: ");
                    }else{
                        FD_SET(sockClient, &master);
                        if(sockClient > fdmax){
                            fdmax = sockClient;
                        }

                        IpList[connectionCount] = remoteaddr;

                        connectionCount++;

在代码的后面,当我尝试迭代数组并打印出连接的 IP 地址和端口号时,我得到以下信息。

 for (int i = 0; i < connectionCount; ++i)
                            {
                               struct sockaddr_in tempSock = IpList[connectionCount];
                               printf("%d  %s  %d\n", connectionCount, inet_ntoa(tempSock.sin_addr), ntohs(tempSock.sin_port));

                            }

0  0.0.0.0 0
1  0.0.0.0 0

数组是静态分配的数组

struct sockaddr_in IpList[256]; 

我做错了什么。

【问题讨论】:

    标签: c sockets


    【解决方案1】:

    更改此设置(在打印连接的循环中):

    struct sockaddr_in tempSock = IpList[connectionCount];
    

    到这里:

    struct sockaddr_in tempSock = IpList[i];
    

    希望能修复它:)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多