首页 > 所有文章 > 行业 >文章详情

c 获取当前上网IP(获取网络ip地址)

时间:2023-10-27 16:46:06 浏览量:41

要使用C语言实现简单的TCP/IP协议,需要使用网络编程库,如Socket编程。以下是一个基本的示例:

```c

#include

#include

#include

#include

#include

int main(int argc, char const *argv[]) {

int sockfd;

struct sockaddr_in server_addr, client_addr;

char buffer[1024] = {0};

// 创建套接字

sockfd = socket(AF_INET, SOCK_STREAM, 0);

if (sockfd == -1) {

perror("socket");

return 1;

}

// 设置服务器地址和端口号

memset(&server_addr, 0, sizeof(server_addr));

server_addr.sin_family = AF_INET;

server_addr.sin_addr.s_addr = INADDR_ANY;

server_addr.sin_port = htons(8888);

// 绑定套接字到服务器地址和端口号

if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {

perror("bind");

close(sockfd);

return 1;

}

// 监听套接字


listen(sockfd, 3);

// 接受客户端连接

while (1) {

struct sockaddr_in client_addr;

socklen_t client_len = sizeof(client_addr);

int clientfd = accept(sockfd, (struct sockaddr *)&client_addr, &client_len);

if (clientfd < 0) {

perror("accept");

continue;

}

// 接收客户端消息

int n = recv(clientfd, buffer, sizeof(buffer), 0);

if (n < 0) {

perror("recv");

continue;

}

// 打印接收到的消息

printf("Received message: %s\n", buffer);

// 发送回应消息

send(clientfd, "Hello, client!", 16, 0);

// 关闭客户端套接字

close(clientfd);

}

// 关闭服务器套接字

close(sockfd);

return 0;

}

```

该程序创建一个服务器套接字,绑定到本地IP地址的8888端口,并开始监听。一旦客户端连接到服务器,服务器将接收客户端消息,并将其打印到控制台。然后,服务器将发送一个回应消息给客户端,并关闭客户端套接字。最后,服务器将关闭自己的套接字,并退出程序。

请注意,此代码仅用于演示目的,实际应用中可能需要进行更多的错误检查和处理。