×

Loading...

回答 #148555, 关于地址端口复用。

sargee (sargee)
如果一个机器A有client-c1和server-s1,并共用一个IP地址-ipa和端口号-pna。它们要和另外一个机器B通讯,并且c1 connect到B 地址-ipb和端口-pnb,s1 accept 远端地址和端口也为ipb, pnb, 那么不可以。
除此以外均可。

在bind前需做以下工作才不会报错:
sockopt=1
if (setsockopt (sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&sockopt, sizeof (sockopt)) != 0)
{
perror("setsockopt");;
exit(1);
} .
if (setsockopt (sockfd, SOL_SOCKET, SO_REUSEPORT, (char *)&sockopt, sizeof (sockopt)) != 0)
{
perror("setsockopt");;
exit(1);
} .

如果你用的是Linux, 那么第2个SO_REUSEPORT不可用,即不能端口复用。Freebsd两个都可以,破破的Windows我不知道,你可以去试。
(#176617@0)
2001-8-23 -04:00
This post has been archived. It cannot be replied.
Page address has been copied. To share, click to copy page address.
Share Online by QR Code

Back To Topic: 回答 #148555, 关于地址端口复用。

Back To Forum: HOME枫下论坛枫下论坛主坛工作学习IT技术讨论