设为首页 加入收藏

TOP

18.3.4 套接字的名字
2013-10-12 06:54:23 来源: 作者: 【 】 浏览:96
Tags:18.3.4 套接字 名字

18.3.4  套接字的名字

要使socket()调用创建的套接字能够被其他进程使用,程序就必须给该套接字起个名字。AF_UNIX套接字会关联到一个文件系统的路径名上去,AF_INET套接字将关联到一个IP端口号上去。为套接字命名可使用bind()系统调用,它的一般形式如下:

  1. int bind(int socket, const struct sockaddr
    *address, size_t address_len); 

bind()系统调用的作用是把参数address中给出的地址赋值给与文件描述符socket相关联的未命名套接字。地址结构的长度是通过address_len参数传递的。地址的长度和类型取决于地址族。bind()调用需要用一个与之对应的地址结构指针指向真正的地址类型。该调用成功时将返回0,否则返回-1,并将errno变量设置为表18.3中的值。

表18.3  bind()系统调用返回的错误代码

    < xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   

EBADF

文件描述符无效

ENOTSOCK

该文件描述符代表

的不是一个套接字

EINVAL

该文件描述符是一

个已命名套接字

EADDRNOTAVAIL

地址不可用

EADDRINUSE

该地址已经绑定一个套接字


AF_UNIX套接字对应的错误代码比上表要多出两个,分别是EACCESS,表示权限不足,不能创建文件系统中使用的名字;ENOTDIR/ENAMETOOLONG,表示路径错误或路径名太长。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇18.3.5 创建套接字队列 下一篇18.1 计算机网络组成

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: