linux编程中的socket编程--server端ip0.0.0.0问题
2014-08-19 10:46
246 查看
1.INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。
2.
一般情况下,如果你要建立网络服务器应用程序,则你要通知服务器操作系统:请在某地址 xxx.xxx.xxx.xxx上的某端口 yyyy上进行侦听,并且把侦听到的数据包发送给我。这个过程,你是通过bind()系统调用完成的。——也就是说,你的程序要绑定服务器的某地址,或者说:把服务器的某地址上的某端口占为已用。服务器操作系统可以给你这个指定的地址,也可以不给你。
如果你的服务器有多个网卡(每个网卡上有不同的IP地址),而你的服务(不管是在udp端口上侦听,还是在tcp端口上侦听),出于某种原因:可能是你的服务器操作系统可能随时增减IP地址,也有可能是为了省去确定服务器上有什么网络端口(网卡)的麻烦 —— 可以要在调用bind()的时候,告诉操作系统:“我需要在 yyyy 端口上侦听,所有发送到服务器的这个端口,不管是哪个网卡/哪个IP地址接收到的数据,都是我处理的。”这时候,服务器程序则在0.0.0.0这个地址上进行侦听。
3.
2.
一般情况下,如果你要建立网络服务器应用程序,则你要通知服务器操作系统:请在某地址 xxx.xxx.xxx.xxx上的某端口 yyyy上进行侦听,并且把侦听到的数据包发送给我。这个过程,你是通过bind()系统调用完成的。——也就是说,你的程序要绑定服务器的某地址,或者说:把服务器的某地址上的某端口占为已用。服务器操作系统可以给你这个指定的地址,也可以不给你。
如果你的服务器有多个网卡(每个网卡上有不同的IP地址),而你的服务(不管是在udp端口上侦听,还是在tcp端口上侦听),出于某种原因:可能是你的服务器操作系统可能随时增减IP地址,也有可能是为了省去确定服务器上有什么网络端口(网卡)的麻烦 —— 可以要在调用bind()的时候,告诉操作系统:“我需要在 yyyy 端口上侦听,所有发送到服务器的这个端口,不管是哪个网卡/哪个IP地址接收到的数据,都是我处理的。”这时候,服务器程序则在0.0.0.0这个地址上进行侦听。
3.
相关文章推荐
- 关于linux下网络编程socket 转换IP问题 inet_ntoa()
- linux socket编程client关闭时server崩溃问题
- unix/linux socket 编程一,简单多进程tcp socket server流程
- 网络编程 socket serversocket连接问题
- linux网络编程之socket(五):tcp流协议产生的粘包问题和解决方案
- linux socket编程相关问题
- Linux编程之socket:tcp流协议产生的粘包问题及解决方法
- Linux下Socket编程之TCP Server端
- Socket 编程 windows到Linux代码移植遇到的问题
- socket编程,server接受到的端口号与client设置的不一致的问题
- Linux下Socket编程的端口问题( Bind error: Address already in use )
- java网络编程之TCP/IP ——SocketServer与Socket
- Linux下Socket编程的端口问题( Bind(): Address already in use )
- Android中的socket编程-关于设置连接的ip问题
- Socket编程:由Linux向Windows移植问题
- Linux下Socket编程的端口问题( Bind error: Address already in use )
- linux socket编程相关问题
- Linux下Socket编程的端口问题( Bind(): Address already in use )
- 一个linux下socket编程的例子,client连server
- linux 网络编程 socket bind failed 问题解决