描述
此函数获取optionsOPTNAME在Socket实现级别LEVEL上在SOCKET上设置的Socketoptions。下表提供了一些OPTNAME在Socket级别的示例值-
OPTNAME Result SO_DEBUG Get status of recording of debugging information SO_REUSEADDR Get status of local address reuse SO_KEEPALIVE Get status of keep connections alive SO_DONTROUTE Get status of routing bypass for outgoing messages SO_LINGER Get status of linger on close if data is present SO_BROADCAST Get status of permission to transmit broadcast messages SO_OOBINLINE Get status of out-of-band data in band SO_SNDBUF Get buffer size for output SO_RCVBUF Get buffer size for input SO_TYPE Get the type of the socket SO_ERROR Get and clear error on the socket TCP_NODELAY To disable the Nagle buffering algorithm.
打包字符串中的确切内容取决于LEVEL和OPTNAME,有关详细信息,请查阅系统文档。
语法
以下是此函数的简单语法-
getsockopt SOCKET, LEVEL, OPTNAME
返回值
此函数在错误时返回undef,否则返回标量context中的options值。
例
以下是显示其基本用法的示例代码,这将检查Nagle的算法是否在Socket上打开。但是,在此示例中,您将必须打开一个Socket以提供存储的ID-
#!/usr/bin/perl use Socket qw(:all); defined(my $tcp=getprotobyname("tcp")) or die "Could not determine the protocol number for tcp"; # my $tcp=IPPROTO_TCP; # Alternative my $packed=getsockopt($socket, $tcp, TCP_NODELAY) or die "Could not query TCP_NODELAY socket option: $!"; my $nodelay=unpack("I", $packed); print "Nagle's algorithm is turned ", $nodelay ? "off\n" : "on\n";
参考链接
https://www.learnfk.com/perl/perl-getsockopt.html
标签:status,getsockopt,Get,无涯,tcp,Perl,SO,TCP,Socket From: https://blog.51cto.com/u_14033984/7033943