操作系统基本概念之网络编程

  1. 套接字接口:
    套接字接口是一组函数,它们与Unix I/O函数结合起来,用以创建网络。从Unix程序的角度看,套接字就是一个有相应描述符的打开文件。

  2. 函数:
    socket( ):客户端和服务器端使用socket( )创建一个套接字描述符;

int socket(int domain,int type,int protocol);

domain :一般参数为AF_INET 表明我们正在使用因特网;
type:一般为SOCK_STREAM表明这个套接字是因特网连接的一个端点;
需要注意的是此时返回的描述符并不能用于读写。

conndect( ):试图与套接字地址为serv_addr的服务器建立一个因特网连接。

int connect(int socketfd,struct sockaddr *servaddr,int addlen);

如果连接成功,sockfd 描述符现在就准备好可以读写。

socket( )和connect( )可以返回一个客户端套接字描述符
bind( ):告诉内核将my_addr中的服务器套接字地址和套接字描述符sockfd 联系起来

int bind(int sockfd,struct sockaddr *my_addr,int addrlen);

listen( ):将一个主动套接字sockfd 转化成一个监听套接字,以接受来自客户端的连接请求

int listen(int sockfd,int backlog);

socket( ) listen( ) bind( )结合可以创建一个服务器端的监听描述符

accept( ):通过调用来等待来自客户端的连接请求

int accept(int listenfd,struct sockaddr *addr ,int addlen);

accept( )等待来自客户端的连接请求到达listenfd,然后在addr中填写客户端的套接字地址,并返回一个已连接描述符;


监听描述符、已连接描述符
监听描述符工作在服务器端,一旦被创建,便存在于服务器的整个生命周期;
已连接描述符:客户端与服务器端已经建立起来连接的一个端点,服务器每次接受连接请求时都会创建一次,仅存在于服务器为某个客户端的服务过程中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值