今天我们用之前讲解过的UDP协议来写一个最基础,最简单的网络聊天程序。
//我们通过udp协议来实现一个简单的网络聊天程序
//这是客户端的实现
//过程:
// 1.创建套接字
// 2.绑定地址信息
// 3.向服务端发送数据
// 4.接受服务端发送的数据
// 5.关闭socket
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<errno.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
int main()
{
int sockfd=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
//socket函数第一个参数为地址类型,目前只支持apra类型的地址
//第二个参数是套接字类型 如果是SOCK_DGRAM 面向数据报的套接字
//如果是SOCK_STREAM则是面向数据流的套接字 不
//第三个参数是用来指定具体协议,不想指定可以省略为0 默认数据报套接字为udp 数据流为tcp
//这里我们指定了IP协议族中的UDP协议。
if(sockfd<0)
{
perror("socket error\n");
return -1;
}
//绑定地址信息,不过在客户端的时候我们通常不绑定
//因为绑定的话可能会因为一些特殊情况失败,但是
//客户端发送数据的时候使用哪个地址和端口都无所谓
//只要数据能够发送成功就可以,所以客户端时我们一般
//不推荐绑定端口