socket编程总结(八)bind()
来源:互联网 发布:临汾行知学校马俊峰 编辑:程序博客网 时间:2024/06/04 20:05
摘要 :在套接口中,一个套接字只是用户程序与内核交互信息的枢纽,它自身没有太多的信息,也没有网络协议地址和端口号等信息,在进行网络通信的时候,必须把一个套接字与一个地址相关联,这个过程就是地址绑定的过程。许多时候内核会我们自动绑定一个地址,然而有时用户可能需要自己来完成这个绑定的过程,以满足实际应用的需要,最典型的情况是一个服务器进程需要绑定一个众所周知的地址或端口以等待客户来连接。这个事由 bind的函数完成。
从bind函数功能我们很容易推测出这个函数的需要的参数与相应的返回值,如果此时大家已经对socket接口有点熟悉了: #include<sys/socket.h>
bind函数并不是总是需要调用的,只有用户进程想与一个具体的地址或端口相关联的时候才需要调用这个函数。如果用户进程没有这个需要,那么程序可以依赖内核的自动的选址机制来完成自动地址选择,而不需要调用bind的函数,同时也避免不必要的复杂度。在一般情况下,对于服务器进程问题需要调用 bind函数,对于客户进程则不需要调用bind函数。
从bind函数功能我们很容易推测出这个函数的需要的参数与相应的返回值,如果此时大家已经对socket接口有点熟悉了: #include<sys/socket.h>
int bind( int sockfd, struct sockaddr* addr, socklen_t addrlen) 返回:0 ──成功, - 1 ──失败
参数sockfd
指定地址与哪个套接字绑定,这是一个由之前的socket函数调用返回的套接字。调用bind的函数之后,该套接字与一个相应的地址关联,发送到这个地址的数据可以通过这个套接字来读取与使用。
参数addr
指定地址。这是一个地址结构,并且是一个已经经过填写的有效的地址结构。调用bind之后这个地址与参数sockfd指定的套接字关联,从而实现上面所说的效果。
参数addrlen
正如大多数socket接口一样,内核不关心地址结构,当它复制或传递地址给驱动的时候,它依据这个值来确定需要复制多少数据。这已经成为socket接口中最常见的参数之一了。bind函数并不是总是需要调用的,只有用户进程想与一个具体的地址或端口相关联的时候才需要调用这个函数。如果用户进程没有这个需要,那么程序可以依赖内核的自动的选址机制来完成自动地址选择,而不需要调用bind的函数,同时也避免不必要的复杂度。在一般情况下,对于服务器进程问题需要调用 bind函数,对于客户进程则不需要调用bind函数。
0 0
- socket编程总结(八)bind()
- socket编程之bind()函数
- socket 编程 bind listen accept
- socket编程之bind()函数
- socket编程之bind()函数
- socket编程(八)
- socket编程 -- socket、bind、accept、connect函数
- socket编程总结(端口使用/bind/select/iocp等)----windows环境下
- 网络编程socket之bind函数
- 网络编程socket之bind函数
- Linux网络编程socket bind() 函数
- 网络编程socket之bind函数
- 网络编程 socket 之 bind 函数
- Linux socket编程之bind小技巧
- linux 网络编程 socket bind failed 问题解决
- 网络编程socket之bind函数
- 网络编程socket之bind函数
- socket编程之bind绑定失败
- C#正则获取网页的网址和名称
- javascript第二天
- python+selenium调用浏览器(IE-Chrome-Firefox)实现爬虫功能
- linux 修改用户密码
- 宽度优先搜索(BFS)
- socket编程总结(八)bind()
- caffe学习系列:计算图片数据的均值
- Java注解学习四:@Inherited的使用
- iOS动画(Core Animation)使用
- 深入浅出UML类图
- 域名解析中A记录、CNAME、MX记录、NS记录的区别和联系
- 将项目放在不同系统环境下出现编码格式错误
- java.lang.NumberFormatException: multiple points已解决
- 跟Android初学者分享几点经验