`
lizaochengwen
  • 浏览: 658170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别

 
阅读更多
今天写程序时候,服务器端启动了,然后客户端总是连接不上,connect返回错误号是10061,服务器积极拒绝请求。

用telnet连接一下端口,发现服务端服务没有开启,但是我程序是启动的,用netstat -a 命令看服务器是监听状态。

把流程走一遍,发现bind用的参数是INADDR_LOOPBACK,改成INADDR_ANY就OK了。

只是有些困惑,因为之前一个程序用的是INADDR_LOOPBACK运行没有问题,为何这里运行不了?

sa.sin_addr.s_addr        = htonl(INADDR_LOOPBACK); // 1
sa.sin_addr.s_addr        = htonl(INADDR_ANY  ); //2

两者的区别
INADDR_ANY是ANY,是绑定地址0.0.0.0上的监听, 能收到任意一块网卡的连接;
INADDR_LOOPBACK, 也就是绑定地址LOOPBAC, 往往是127.0.0.1, 只能收到127.0.0.1上面的连接请求


原文:http://blog.chinaunix.net/uid-22476414-id-3334356.html
分享到:
评论

相关推荐

    tcp_socket.rar_TCP socket_socket_socket tcp_socket-tcp

    2. **绑定套接字**:通过`bind()`函数将套接字与特定的IP地址和端口号关联,允许其他设备通过该地址和端口找到并连接。 3. **监听连接**:调用`listen()`函数设置服务器监听状态,指定最大连接队列长度。 4. **...

    service_client_socket.rar_linux 服务端_linux下socket_socket_socket通信

    server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(5000); ``` 3. **绑定Socket**:使用`bind()`函数将Socket描述符与服务器地址关联。 ```c bind(socket_fd, (struct ...

    win-socket-demo_socket编程_socket_windows_DEMO_

    标题“win-socket-demo_socket编程_socket_windows_DEMO_”指的是一个Windows平台上的Socket编程示例项目,主要涉及网络通信的基础知识,尤其是如何在Windows环境下使用Socket API进行客户端和服务器端的交互。...

    API_SOCKET.rar_API sock_API. socket_API_SOCKET_api socket_socket

    "api_sock"、"api._socket"、"api_socket"和"api_socket socket_can_api"这些标签暗示了我们可能讨论的是Socket API的不同方面,包括基础功能和可能的CAN(Controller Area Network)协议支持。 首先,让我们深入...

    Socket_test.rar_socket c_socket_test_socket聊天_客户端和 服务器端

    2. 绑定:调用bind()函数将Socket与一个IP地址和端口号绑定,用于监听来自特定端口的连接请求。 3. 监听:调用listen()函数使Socket进入监听状态,等待客户端的连接。 4. 接受连接:当有客户端请求连接时,调用...

    Socket_socket_tcp_源码.zip

    1. **Socket创建与绑定**:源码将展示如何使用`socket()`函数创建一个Socket,然后用`bind()`函数将Socket与本地地址(IP和端口)关联。 2. **监听与接受**:服务器端会使用`listen()`函数设置Socket为监听模式,...

    Windows Socket API 使用经验.rar_socket_windows_windows api socket_wi

    其中,`INADDR_ANY`表示监听所有可用的网络接口。 5. **监听(Listening)** 对于服务器端,使用`listen()`函数设置Socket为监听模式,允许客户端连接: ```c listen(sock, SOMAXCONN); ``` 6. **连接...

    Socket_M_Client_sockettcp_TCP/IPclient_C++socket_

    3. `bind()`: 绑定Socket到本地端口,对于客户端通常不是必需的。 4. `connect()`: 连接到服务器的Socket。例如: ```cpp connect(socket_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)); ``` 5. `...

    socket_socket_简单的socket代码_

    在本示例中,我们将探讨一个简单的Socket代码,这个代码可能包含了客户端和服务器端的实现,以便于理解Socket的基本工作原理和使用方法。 首先,我们要了解Socket的定义。Socket在操作系统层面上是一个端点,用于两...

    socket_socket_网络_

    在实际的Socket编程中,服务器端会创建一个监听套接字,调用bind()函数将其绑定到特定的IP地址和端口,然后调用listen()开始监听连接请求。当有客户端请求连接时,服务器调用accept()接受连接,并为每个连接创建一个...

    Winscck 编程

    `INADDR_ANY`作为Winsock编程中的一个重要概念,使得服务器能够轻松监听所有网络接口上的数据,从而提高灵活性和适应性。了解其工作原理有助于开发者更好地设计网络应用,特别是在多接口服务器环境中。 #### 八、...

    利用Bind_DLZ_MySQL_构建智能DNS.pdf

    2. 智能域名解析: Bind_DLZ_MySQL 可以根据不同的网络环境和用户需求,实时调整域名解析结果,从而提高域名解析的速度和准确性。 3. 动态更新 DNS 记录: Bind_DLZ_MySQL 可以实时更新 DNS 记录,实现 DNS 记录的...

    SOCKET_TCP_tcp_

    server_socket.bind(('localhost', 12345)) ``` 3. 设置最大连接数,超过后客户端需等待,然后启动监听: ```python server_socket.listen(5) ``` 4. 接受客户端连接,每次连接都会创建一个新的套接字: ```python ...

    FTP_socket.rar_C Socket FTP_ftp socket_ftp 客户端_socket ftp

    在C语言中,使用Socket API可以创建这些连接,包括`socket()`函数用于创建套接字,`connect()`或`bind()`及`listen()`用于建立连接,以及`send()`和`recv()`用于发送和接收数据。 标签中的“c___socket”指的是...

    TCP_Socket.rar_TCP socket_socket_socket server_winsocket server

    3. **绑定IP和端口**:通过`bind`函数将套接字与特定的IP地址和端口号关联起来,这样客户端就可以通过这个地址和端口找到服务器。 4. **监听连接**:服务器调用`listen`函数,使套接字进入监听状态,等待客户端的...

    tcp_tcp服务器_socket_tcp_

    在服务器端,我们需要创建一个Socket对象,然后绑定到特定的IP地址和端口号上,使用`bind()`函数。接着,通过`listen()`函数设置最大连接队列长度,等待客户端连接。当有客户端连接时,服务器调用`accept()`函数接收...

    TCP-SOCKET.zip_CSharp socket tcp_TCP socket_socket_socket server

    - 绑定与监听:使用Bind方法绑定到特定的IP地址和端口,然后调用Listen方法开始监听连接请求。 - 接受连接:使用Accept方法等待并接受客户端的连接请求,Accept会阻塞直到有连接到达,返回一个新的Socket对象用于...

    socket_base_class.zip_c++ socket类_c++ Socket类_udp类

    - `bind()`: 绑定Socket到特定的IP地址和端口号,使得该Socket可以接收来自特定地址的数据。 - `sendto()`: 向指定的远程主机和端口发送数据报文。 - `recvfrom()`: 接收来自任何源的UDP数据报文,并可获取发送者的...

    TCP_Socket.zip_SocketDemo.exe_TCP-IP--Socket_TCP_Socket_socket T

    2. **地址绑定**:使用`bind()`函数将Socket与特定的IP地址和端口号绑定,以便接收来自网络的数据。 3. **监听连接**:对于服务器端,使用`listen()`函数设置Socket为监听状态,等待客户端的连接请求。 4. **接受...

    服务端向多客户端通信_C语言_sockettcp_socket_tcp_linux_

    2. **配置套接字地址**:使用`struct sockaddr_in`结构体表示IPv4地址,包括IP地址(可以是INADDR_ANY表示任何可用IP)和端口号(使用htons()转换为网络字节序)。 3. **绑定套接字**:使用`bind()`函数将创建的套...

Global site tag (gtag.js) - Google Analytics