connect 和accept区别

来源:互联网 发布:柏柏尔人 知乎 编辑:程序博客网 时间:2024/06/06 01:58
connect 和accept 都用于完成套接字的连接,不同的是,其中connet 用于申请建立连
接,无连接的套接字进程也可以调用connet,但这时在进程之间没有实际的报文交换,调
用将从本地操作系统直接返回。这样做的优点是程序员不必为每一数据指定目的地址,而且,
如果收到一个数据报,其目的端口未与任何套接字建立“连接”,便能判断该端口不可操作。
accept 函数用于使服务器等待来自某客户进程的实际连接。accept 用于面向连接服务
器,参数addr 和addrlen 存放客户方的地址信息,调用前,参数addr 指向一个初始值为
空的地址结构,而addrlen 初始化为0。调用accept 后,服务器从编号为参数s 表示的套
接字上接受用户连接请求,连接请求是由客户方的connet 调用发出的,当有连接请求到达
时,accept 调用将请求连接队列上的第一个客户方套接字地址及长度放入addr 和addrlen
中,并创建一个与参数s 有相同属性的新套接字。
原创粉丝点击