gpt4 book ai didi

c++ - Winsock:监听和接收(区别)

转载 作者:行者123 更新时间:2023-11-30 03:47:12 24 4
gpt4 key购买 nike

我在 winsock 库(TCP/IP 流通信)中找到了函数 listenrecv 的定义。

The listen function places a socket in a state in which it is listening for an incoming connection.

The recv function receives data from a connected socket or a bound connectionless socket.

这是否意味着如果我想从特定套接字接收数据我应该首先使用listen然后使用recv?我不确定我是否理解正确。

最佳答案

函数 listenrecv 具有完全不同的功能和用途。

listen 函数旨在允许等待一个或多个客户端连接的服务器在端口上监听是否有人连接。

recv 函数用于已建立的套接字,以接收从该套接字另一端的机器发送的数据。

正如评论中提到的,我还要提到connect。 Connect 是 listen 的对应物。它与监听机器正在监听的端口对话,并与该机器建立套接字。

BSD 套接字和 winsock 库没有真正明确的是,从程序员的角度来看,有两种完全不同的套接字,一种是监听套接字,一种是已建立的套接字。

服务器首先需要创建一个用于等待客户端的监听套接字,该套接字用于实际发送任何数据,它的存在只是为了帮助创建已建立的 socket 。然而,监听套接字不会成为已建立的套接字,当客户端连接时,监听套接字实际上会创建第二个套接字进行数据传输。

已建立的套接字是我们识别并用于大多数事情的那种。它是一个两端带有机器的socket,通过监听和发送来进行数据传输。

关于c++ - Winsock:监听和接收(区别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com