![]() |
![]()
| ![]() |
![]()
NAMEPOSIX::Socket - Low-level perl interface to POSIX sockets SYNOPSISuse POSIX::Socket my $rd=_socket(AF_INET, SOCK_DGRAM, 0) or die "socket: $!\n"; my $wr=_socket(AF_INET, SOCK_DGRAM, 0) or die "socket: $!\n"; my $addr = sockaddr_in(0, inet_aton("127.0.0.1")); my $bind_rv=_bind($rd, $addr); _getsockname($rd, $addr); my ($port, $ip) = unpack_sockaddr_in($addr); $ip = inet_ntoa($ip); die "_getsockname fail!" unless $ip eq "127.0.0.1"; my $ret_val1 = _sendto($wr, $msg, $flags, $addr); my $ret_val2 = _recv($rd, $buf, 8192, 0); _close ($rd); _close ($wr); DESCRIPTIONThe primary purpose of this is to use file descriptors instead of file handles for socket operations. File descriptors can be shared between threads and not need dup file handles for each threads. I hope you enjoyed it. EXPORT$fd = _socket($socket_family, $socket_type, $protocol); $rv = _close($fd) $rv = _fcntl($fildes, $cmd, $arg); $rv = _bind($fd, $addr); $rv = _connect($fd, $addr); $n = _recv($fd, $buffer, $len, $flags); $n = _recvn($fd, $buffer, $len, $flags); $rv = _getsockname($fd, $addr); $n = _send($fd, $buffer, $flags); $n = _sendn($fd, $buffer, $flags); $n = _sendto($fd, $buf, $flags, $dest_addr); $n = _recvfrom($fd, $buf, $len, $flags, $sock_addr); $new_fd = _accept($fd); $rv = _listen($fd, $backlog); $rv = _getsockopt($fd, $level, $optname, $optval, $optlen); $rv = _setsockopt($fd, $level, $optname, $optval); AUTHORYury Kotlyarov "yura@cpan.org" SEE ALSOPOSIX, Socket
|