溫馨提示×

Linux sockaddr如何獲取

小樊
94
2025-01-01 21:16:04
欄目: 智能運維

在Linux系統中,sockaddr結構體用于表示網絡地址

  1. 使用socket()函數創建一個套接字:
#include <sys/socket.h>
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
  1. 使用sockaddr_in結構體定義一個IPv4地址:
#include <netinet/in.h>
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(8080);
inet_pton(AF_INET, "127.0.0.1", &(server_addr.sin_addr));
  1. 使用connect()函數連接到服務器:
connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
  1. 使用recv()send()函數發送和接收數據:
// 發送數據
char buffer[1024] = "Hello, Server!";
send(sockfd, buffer, strlen(buffer), 0);

// 接收數據
int recv_len = recv(sockfd, buffer, sizeof(buffer) - 1, 0);
buffer[recv_len] = '\0';
printf("Received from server: %s\n", buffer);
  1. 使用close()函數關閉套接字:
close(sockfd);

在這個示例中,我們創建了一個IPv4套接字,連接到本地主機的8080端口,發送一條消息,然后接收并打印服務器返回的消息。注意,sockaddr_in結構體是sockaddr結構體的子結構體,用于表示IPv4地址。如果你需要處理IPv6地址,可以使用sockaddr_in6結構體。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女