网络编程就是使得联网的两台计算机互相交换数据,其中包括物理连接,软件数据传输。套接字就是网络传输用的软件设备。
步骤一套接字创建:调用socket函数
#include<sys/socket.h>
int socket(int domain,int type,int protocol)
//成功返回文件描述符,失败返回-1
步骤二调用bind函数分配地址信息(IP地址和端口号)
#include<sys/socket.h>
int bind(int sockfd,struct sockaddr * myaddr,socklen_t addrlen);
//成功返回0,失败返回-1
步骤三调用listen函数转为可接收连接状态
#include<sys/socket.h>
int listen(int sockfd,int backlog);
//成功返回0,失败返回-1
步骤三调用accept受理连接请求
#include<sys/socket.h>
int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);
//成功返回文件描述符,失败返回-1
客服端:
客户端只有调用socket函数创建套接字和调用connect函数向服务器发送连接请求两个步骤。
#include<sys/socket.h>
int connect(int sockfd,struct sockaddr *serv_addr,socklen_t addrlen);
//成功返回0,失败返回-1
基于Linux的文件操作
文件描述符指的是方便称呼操作系统创建的文件或套接字而赋予的数
打开文件读写数据,调用函数时需传入两个参数,一个是目标文件路径,二是打开模式
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>int open(const char *path,int flag);
//成功返回文件描述符,失败返回-1
关闭文件
#include<unistd.h>
int close(int fd);
//成功返回0,失败返回-1
将数据写入文件
#include<unistd.h>
ssize_t write(int fd, const void *buf,size_t nbytes);
//成功写入字节数,失败返回-1
读取文件中的数据
#include<ubistd.h>
ssize_t read(int fd,void *buf,size_t nbytes);