c - 连接列表在 C 套接字编程中显示 0.0.0.0

标签 c sockets

<分区>

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

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]; 

我做错了什么。

最佳答案

改变这个(在你打印连接的循环中):

struct sockaddr_in tempSock = IpList[connectionCount];

为此:

struct sockaddr_in tempSock = IpList[i];

应该希望修复它:)

关于c - 连接列表在 C 套接字编程中显示 0.0.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192726/

相关文章:

php - Asterisk AMI AGI通知PHP脚本

sockets - C#套接字接收缓冲区的大小成本

c - 我想使用指针从函数返回多个值,但它返回一个值

c - c中无法访问的语句

c - 使用 char 指针时如何解决代码错误

php - 如何使用 Ratchet 发送特定套接字连接的事件

c++ - 内存分配和字符数组

c - 乘以混合数据类型时,float 是否总是自动转换为 double?

c++ - 为什么我们在 Boost.ASIO 中需要很多接受器?

php - PHP-如何读取最多EOF-套接字资源?