linux c语言socket udp 判断绑定ip是否成功
时间: 2023-11-28 20:04:39 浏览: 91
在Linux C语言Socket编程中,可以使用以下代码判断UDP socket是否成功绑定IP地址:
```
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main()
{
int sockfd;
struct sockaddr_in addr;
socklen_t len = sizeof(addr);
// 创建UDP socket
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) {
perror("socket");
exit(EXIT_FAILURE);
}
// 绑定IP地址
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.s_addr = inet_addr("192.168.1.100");
if (bind(sockfd, (struct sockaddr *)&addr, len) < 0) {
perror("bind");
exit(EXIT_FAILURE);
}
// 获取绑定的IP地址和端口号
getsockname(sockfd, (struct sockaddr *)&addr, &len);
printf("Bind IP: %s, Port: %d\n", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
return 0;
}
```
在绑定IP地址后,使用 `getsockname()` 函数获取绑定的IP地址和端口号,如果获取成功,则表示绑定IP地址成功。如果绑定失败,则 `bind()` 函数会返回 -1,并且可以通过 `perror()` 函数输出错误信息。
阅读全文