在了解如何创建套接字后,我们要实现UDP网络程序过程,在此之前,我们先对其部分功能进行测试验证;
test.cpp
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main()
{
//创建套接字
int sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(sockfd < 0)
{
perror("socket");
return -1;
}
//绑定地址信息
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("0.0.0.0") ;//ip
addr.sin_port = htons(19999);
int ret = bind(sockfd, (struct sockaddr*)&addr, sizeof(addr));
if(ret < 0)
{
perror("bind");
return -1;
}
while(1)
{
sleep(10);
}
return 0;
}
makefile:
test_socket:test.cpp
g++ $^ -o $@ -g
验证:
- sockfd是不是文件描述符;
由此我们就可以看出sockfd
是一个文件描述符 - 是否成功绑定端口:
查看端口是否被绑定——>netstat -anp
(可以查看当前操作系统端口的占用情况)
此时我们可以查看到端口已经被绑定了
这两个疑问解除后,我们就一起探究如何进行UDP协议网络编程吧~