Both client and server use the socket
call to create a socket and
associate it with a filehandle. The socket
function takes several arguments:
the name of the filehandle, the network domain, an indication of
whether the socket is stream-oriented or record-oriented, and the
network protocol to be used. For example, HTTP (web) transactions
require stream-oriented connections running TCP. The following lines
create a socket for this case and associates it with the filehandle
SH
:
use Socket; socket(SH, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die $!;
The PF_INET
argument
indicates that the socket will connect to addresses in the Internet
domain (i.e., IP addresses). Sockets with a Unix domain address use
PF_UNIX
.
Because this is a streaming connection using TCP, we specify
SOCK_STREAM
for the second
argument. The alternative would be to specify SOCK_DGRAM
for a packet-based UDP
connection.
The third argument indicates the protocol used for the
connection. Each protocol has a number assigned to it by the system;
that number is passed to socket
as the third argument. In the scalar context, getprotobyname
returns the protocol
number.
Finally, if the socket call fails, the program will die
, printing the error message found in
$!
.
3.142.199.184