Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets UDP套接字是否过期?_Sockets_Udp - Fatal编程技术网

Sockets UDP套接字是否过期?

Sockets UDP套接字是否过期?,sockets,udp,Sockets,Udp,我想全局初始化一个套接字,sendto可以使用它在以后发送udp数据包。我不想在我正要发送数据包时初始化套接字,而是想在程序第一次启动时初始化它,然后在不同的时间访问它 如果插座在那里放置数小时而不处于活动状态,这会导致问题吗?否……否……这是一个特定于操作系统的问题 说到类Unix操作系统,套接字被计算为打开的文件,因此您使用的唯一资源是打开的文件表中的条目,这通常受到ulimit的限制: myaut@panther:~> ulimit -a ... open files

我想全局初始化一个套接字,sendto可以使用它在以后发送udp数据包。我不想在我正要发送数据包时初始化套接字,而是想在程序第一次启动时初始化它,然后在不同的时间访问它


如果插座在那里放置数小时而不处于活动状态,这会导致问题吗?

否……

否……

这是一个特定于操作系统的问题

说到类Unix操作系统,套接字被计算为打开的文件,因此您使用的唯一资源是打开的文件表中的条目,这通常受到ulimit的限制:

myaut@panther:~> ulimit -a
...
open files                      (-n) 1024
套接字还将占用少量内核内存作为其缓冲区。但由于它是一个打开的文件,所以在您显式关闭它之前,不应该关闭它,否则您的程序就死了

其他操作系统可能有类似的限制/要求


然而,由于现在的内存非常便宜,保持预先打开的套接字在延迟方面有更多的好处。

这是一个操作系统特有的问题

说到类Unix操作系统,套接字被计算为打开的文件,因此您使用的唯一资源是打开的文件表中的条目,这通常受到ulimit的限制:

myaut@panther:~> ulimit -a
...
open files                      (-n) 1024
套接字还将占用少量内核内存作为其缓冲区。但由于它是一个打开的文件,所以在您显式关闭它之前,不应该关闭它,否则您的程序就死了

其他操作系统可能有类似的限制/要求


然而,由于现在的内存非常便宜,保持预先打开的套接字在延迟方面有更多的好处。

这取决于具体情况。套接字本身在您显式关闭它之前保持有效,就像它是一个文件一样。但是,说到细节,如果您使用0.0.0.0以外的特定IP绑定套接字,则IP本身可能会因为接口关闭或更改设置而消失,从而导致套接字不可用。在接口关闭的情况下,如果稍后再次打开并具有相同的ip,则您的套接字可以再次使用。

视情况而定。套接字本身在您显式关闭它之前保持有效,就像它是一个文件一样。但是,说到细节,如果您使用0.0.0.0以外的特定IP绑定套接字,则IP本身可能会因为接口关闭或更改设置而消失,从而导致套接字不可用。在接口下降的情况下,如果稍后重新启动,并且C++具有相同的IP,您的套接字可以再次使用。我不认为这与C或C++有关。最好删除那些标签,然后离开。我不认为这与C或C++有关。最好删除这些标签,然后离开。这不是操作系统特有的问题,除非你能生产出一个操作系统,而这些标签确实会过期,与分别适用的BSD套接字以及Winsock和Posix规范相反。@EJP:OPs问题是,如果套接字在那里放置数小时而未处于活动状态,这会导致问题吗?。所以我试图涵盖所有我知道可能由未关闭的套接字引起的问题。您还没有“涵盖任何您知道的问题”。你刚刚发布了一个未经证实的猜测。你的证据在哪里?这不是一个操作系统特定的问题,除非你能生成一个操作系统,而这些操作系统确实会过期,这与分别适用的BSD套接字、Winsock和Posix规范相反。@EJP:OPs问题是,如果套接字在那里放置数小时而不处于活动状态,这会导致问题吗?。所以我试图涵盖所有我知道可能由未关闭的套接字引起的问题。您还没有“涵盖任何您知道的问题”。你刚刚发布了一个未经证实的猜测。你的证据在哪里?即使我认为你是对的,也应该详细阐述一下,或者提供一些参考资料。插座不会因为无所事事而消亡。我不想找那个的推荐人,我只是知道。如果他们这样做了,我现在就已经注意到了。即使我认为你是对的,也应该详细阐述一下,或者提供一些参考资料。插座不会因为无所事事而消亡。我不想找那个的推荐人,我只是知道。如果他们这样做了,我现在就会注意到了。