TCP/IP编程之bind函数详解
2016-07-09 21:32
1576 查看
函数原型:
参数说明:
sockfd是由socket函数返回的套接字描述符,第二个、第三个参数分别是一个指向套接字地址结构的指针和结构的大小。
返回值:
返回:若成功则为0,若出错则为-1(从bind函数返回的一个常见错误是EADDRINUSE "Address already in use",地址已经在使用)
bind函数把一个本地协议地址赋予一个套接字。对于TCP,调用bind函数可以指定一个端口号,或指定一个IP地址,也可以两者都指定,还可以都不指定。
IPv4的TCP伪代码如下:
参考:《unix网络编程》·卷1
BIND(2) Linux Programmer's Manual BIND(2) NAME bind - bind a name to a socket SYNOPSIS #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
参数说明:
sockfd是由socket函数返回的套接字描述符,第二个、第三个参数分别是一个指向套接字地址结构的指针和结构的大小。
返回值:
返回:若成功则为0,若出错则为-1(从bind函数返回的一个常见错误是EADDRINUSE "Address already in use",地址已经在使用)
bind函数把一个本地协议地址赋予一个套接字。对于TCP,调用bind函数可以指定一个端口号,或指定一个IP地址,也可以两者都指定,还可以都不指定。
IPv4的TCP伪代码如下:
int sockfd = socket(AF_INET, SOCK_STREAM, 0); //TCP short port = 9527; //端口 struct sockaddr_in servaddr; servaddr.sin_family = AF_INET; //IPv4 servaddr.sin_addr.s_addr = htonl(INADDR_ANY); //表示由内核去选择IP地址 servaddr.sin_port = htons(port); int res = bind(sockfd, (sockaddr *)&servaddr, sizeof(servaddr)); if (0 == res) printf("server bind success, 0.0.0.0:%d\n", port); else { perror("bind fail"); }
参考:《unix网络编程》·卷1
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- android wifi 无线调试
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- 如何使用 bind 设置 DNS 服务器
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)