内容:
第1章 理解网络编程和套接字
套接字是网络数据传输用的软件设备
服务端 --
#include <sys/socket.h>
第一步:调用socket函数创建套接字
int socket(int domain, int type, int protocol);
第二步:调用bind函数分配IP地址和端口号
int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);
第三步:调用listen函数转为可接收请求状态
int listen(int sockfd, int backlog);
第四步:调用accept函数受理连接请求
int accept(int sockfd, struct sockaddr *addr, socketlen_t *addrlen);
客户端 --
第一步:调用socket函数创建套接字
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
第二步:调用connect函数向服务器端发送连接请求
int connect(int sockfd, struct sockaddr *serv_addr, socklen_t addrlen);
对Linux而言,socket操作与文件操作没有区别,甚至socket也被认为是文件的一种;
文件描述符是系统分配给文件或套接字的整数;
文件和套接字一般经过创建才会被分配文件描述符,但0, 1, 2被预分配给了标准输入,标准输出和标准错误;
文件操作
int open(const char *path, int flag);//返回文件描述符
int close(int fd);
ssize_t write(int fd, const void * buf, size_t nbytes);
ssize_t read(int fd, void *buf, size_t nbytes);