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

来源:互联网 发布:sas高校数据分析大赛 编辑:程序博客网 时间:2024/05/22 02:25
  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中填写客户端的套接字地址,并返回一个已连接描述符;


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

原创粉丝点击