文章目录
01 网络通信解决什么问题?
为了解决不同主机进程间通信的问题
用的socket套接字,用来解决不同主机进程间通信问题
socket在不同的主机必须成对出现
每一台主机必须要有和对方主机成对出现的socket
02 socket
#include<sys/socket.h>
int sockert(int domain,int type,int protocol);
功能:创建一个socket套接字
参数:
domain:AF_INET
type:
SOCK_STREAM:流式套接字,用于TCP 通信
SOCK_DGRAM:报式套接字,用于UDP通信
protocol:协议0 自动指定
返回值:返回一个套接字(文件描述符)
03 bind
#include<sys/socket.h>
int bind(int sockfd,const struct sockaddr*addr,socklen_t addrlen);
功能:
给套接字绑定一个固定的IP和端口
参数:
sockfd:套接字
addr: iPV4套接字结构体地址 转成 通用套接字结构体地址
addrlen:结构体的大小
04 网络通信 需要解决三大问题: 协议 ip port
协议 ip port 封装在一个结构体中