Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

News / Blogs

- Perl Buzz
- Perl Iron Man
- Perlsphere
- Planet Perl
- TPF news
- Use Perl

See also

- CPAN
- Perl.org
- Perl.com
- Perl 5 Wiki
- Perl Jobs
- Perl Mongers
- Perl Monks

Contact

- Site designed and maintained by Jon Allen (JJ)
- http://perl.jonallen.info

- View the project page and FAQs

# getsockopt

Perl 5 version 10.1 documentation
Go to top

# getsockopt

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- getsockopt SOCKET,LEVEL,OPTNAME

  Queries the option named OPTNAME associated with SOCKET at a given LEVEL. Options may exist at multiple protocol levels depending on the socket type, but at least the uppermost socket level SOL_SOCKET (defined in the `Socket` module) will exist. To query options at another level the protocol number of the appropriate protocol controlling the option should be supplied. For example, to indicate that an option is to be interpreted by the TCP protocol, LEVEL should be set to the protocol number of TCP, which you can get using getprotobyname.

  The call returns a packed string representing the requested socket option, or `undef` if there is an error (the error reason will be in $!). What exactly is in the packed string depends in the LEVEL and OPTNAME, consult your system documentation for details. A very common case however is that the option is an integer, in which case the result will be a packed integer which you can decode using unpack with the `i` (or `I` ) format.

  An example testing if Nagle's algorithm is turned on on a socket:

          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";

Recently read

Tools

- Preferences