OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [net/] [common/] [v2_0/] [doc/] [manpages/] [sys/] [socket.2] - Diff between revs 27 and 174

Only display areas with differences | Details | Blame | View Log

Rev 27 Rev 174
.\"     $OpenBSD: socket.2,v 1.18 2000/10/18 05:12:12 aaron Exp $
.\"     $OpenBSD: socket.2,v 1.18 2000/10/18 05:12:12 aaron Exp $
.\"     $NetBSD: socket.2,v 1.5 1995/02/27 12:37:53 cgd Exp $
.\"     $NetBSD: socket.2,v 1.5 1995/02/27 12:37:53 cgd Exp $
.\"
.\"
.\" Copyright (c) 1983, 1991, 1993
.\" Copyright (c) 1983, 1991, 1993
.\"     The Regents of the University of California.  All rights reserved.
.\"     The Regents of the University of California.  All rights reserved.
.\"
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"    must display the following acknowledgement:
.\"     This product includes software developed by the University of
.\"     This product includes software developed by the University of
.\"     California, Berkeley and its contributors.
.\"     California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"    without specific prior written permission.
.\"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\" SUCH DAMAGE.
.\"
.\"
.\"     @(#)socket.2    8.1 (Berkeley) 6/4/93
.\"     @(#)socket.2    8.1 (Berkeley) 6/4/93
.\"
.\"
.Dd June 4, 1993
.Dd June 4, 1993
.Dt SOCKET 2
.Dt SOCKET 2
.Os
.Os
.Sh NAME
.Sh NAME
.Nm socket
.Nm socket
.Nd create an endpoint for communication
.Nd create an endpoint for communication
.Sh SYNOPSIS
.Sh SYNOPSIS
.Fd #include 
.Fd #include 
.Fd #include 
.Fd #include 
.Ft int
.Ft int
.Fn socket "int domain" "int type" "int protocol"
.Fn socket "int domain" "int type" "int protocol"
.Sh DESCRIPTION
.Sh DESCRIPTION
.Fn socket
.Fn socket
creates an endpoint for communication and returns a descriptor.
creates an endpoint for communication and returns a descriptor.
.Pp
.Pp
The
The
.Fa domain
.Fa domain
parameter specifies a communications domain within which
parameter specifies a communications domain within which
communication will take place; this selects the protocol family
communication will take place; this selects the protocol family
which should be used.
which should be used.
These families are defined in the include file
These families are defined in the include file
.Ao Pa sys/socket.h Ac .
.Ao Pa sys/socket.h Ac .
The currently understood formats are
The currently understood formats are
.Pp
.Pp
.Bd -literal -offset indent -compact
.Bd -literal -offset indent -compact
AF_UNIX         (UNIX internal protocols),
AF_UNIX         (UNIX internal protocols),
AF_INET         (ARPA Internet protocols),
AF_INET         (ARPA Internet protocols),
AF_INET6        (ARPA IPv6 protocols),
AF_INET6        (ARPA IPv6 protocols),
AF_ISO          (ISO protocols),
AF_ISO          (ISO protocols),
AF_NS           (Xerox Network Systems protocols),
AF_NS           (Xerox Network Systems protocols),
AF_IPX          (Internetwork Packet Exchange), and
AF_IPX          (Internetwork Packet Exchange), and
AF_IMPLINK      (IMP \*(lqhost at IMP\*(rq link layer).
AF_IMPLINK      (IMP \*(lqhost at IMP\*(rq link layer).
.Ed
.Ed
.Pp
.Pp
The socket has the indicated
The socket has the indicated
.Fa type ,
.Fa type ,
which specifies the semantics of communication.
which specifies the semantics of communication.
Currently defined types are:
Currently defined types are:
.Pp
.Pp
.Bd -literal -offset indent -compact
.Bd -literal -offset indent -compact
SOCK_STREAM
SOCK_STREAM
SOCK_DGRAM
SOCK_DGRAM
SOCK_RAW
SOCK_RAW
SOCK_SEQPACKET
SOCK_SEQPACKET
SOCK_RDM
SOCK_RDM
.Ed
.Ed
.Pp
.Pp
A
A
.Dv SOCK_STREAM
.Dv SOCK_STREAM
type provides sequenced, reliable,
type provides sequenced, reliable,
two-way connection based byte streams.
two-way connection based byte streams.
An out-of-band data transmission mechanism may be supported.
An out-of-band data transmission mechanism may be supported.
A
A
.Dv SOCK_DGRAM
.Dv SOCK_DGRAM
socket supports
socket supports
datagrams (connectionless, unreliable messages of
datagrams (connectionless, unreliable messages of
a fixed (typically small) maximum length).
a fixed (typically small) maximum length).
A
A
.Dv SOCK_SEQPACKET
.Dv SOCK_SEQPACKET
socket may provide a sequenced, reliable,
socket may provide a sequenced, reliable,
two-way connection-based data transmission path for datagrams
two-way connection-based data transmission path for datagrams
of fixed maximum length; a consumer may be required to read
of fixed maximum length; a consumer may be required to read
an entire packet with each read system call.
an entire packet with each read system call.
This facility is protocol specific, and presently implemented
This facility is protocol specific, and presently implemented
only for
only for
.Dv PF_NS .
.Dv PF_NS .
.Dv SOCK_RAW
.Dv SOCK_RAW
sockets provide access to internal network protocols and interfaces.
sockets provide access to internal network protocols and interfaces.
The types
The types
.Dv SOCK_RAW ,
.Dv SOCK_RAW ,
which is available only to the superuser, and
which is available only to the superuser, and
.Dv SOCK_RDM ,
.Dv SOCK_RDM ,
which is planned,
which is planned,
but not yet implemented, are not described here.
but not yet implemented, are not described here.
.Pp
.Pp
The
The
.Fa protocol
.Fa protocol
specifies a particular protocol to be used with the socket.
specifies a particular protocol to be used with the socket.
Normally only a single protocol exists to support a particular
Normally only a single protocol exists to support a particular
socket type within a given protocol family.
socket type within a given protocol family.
However, it is possible that many protocols may exist,
However, it is possible that many protocols may exist,
in which case a particular protocol must be specified in this manner.
in which case a particular protocol must be specified in this manner.
The protocol number to use is particular to the \*(lqcommunication domain\*(rq
The protocol number to use is particular to the \*(lqcommunication domain\*(rq
in which communication is to take place; see
in which communication is to take place; see
.Xr protocols 5 .
.Xr protocols 5 .
A value of 0 for
A value of 0 for
.Fa protocol
.Fa protocol
will let the system select an appropriate protocol for the requested
will let the system select an appropriate protocol for the requested
socket type.
socket type.
.Pp
.Pp
Sockets of type
Sockets of type
.Dv SOCK_STREAM
.Dv SOCK_STREAM
are full-duplex byte streams, similar to pipes.
are full-duplex byte streams, similar to pipes.
A stream socket must be in a
A stream socket must be in a
.Em connected
.Em connected
state before any data may be sent or received on it.
state before any data may be sent or received on it.
A connection to another socket is created with a
A connection to another socket is created with a
.Xr connect 2
.Xr connect 2
call.
call.
Once connected, data may be transferred using
Once connected, data may be transferred using
.Xr read 2
.Xr read 2
and
and
.Xr write 2
.Xr write 2
calls or some variant of the
calls or some variant of the
.Xr send 2
.Xr send 2
and
and
.Xr recv 2
.Xr recv 2
calls.
calls.
When a session has been completed a
When a session has been completed a
.Xr close 2
.Xr close 2
may be performed.
may be performed.
Out-of-band data may also be transmitted as described in
Out-of-band data may also be transmitted as described in
.Xr send 2
.Xr send 2
and received as described in
and received as described in
.Xr recv 2 .
.Xr recv 2 .
.Pp
.Pp
The communications protocols used to implement a
The communications protocols used to implement a
.Dv SOCK_STREAM
.Dv SOCK_STREAM
ensure that data is not lost or duplicated.
ensure that data is not lost or duplicated.
If a piece of data for which the peer protocol has buffer space cannot
If a piece of data for which the peer protocol has buffer space cannot
be successfully transmitted within a reasonable length of time, then the
be successfully transmitted within a reasonable length of time, then the
connection is considered broken and calls will indicate an error with \-1
connection is considered broken and calls will indicate an error with \-1
returns and with
returns and with
.Er ETIMEDOUT
.Er ETIMEDOUT
as the specific code in the global variable
as the specific code in the global variable
.Va errno .
.Va errno .
The protocols optionally keep sockets
The protocols optionally keep sockets
.Dq warm
.Dq warm
by forcing transmissions roughly every minute in the absence of other activity.
by forcing transmissions roughly every minute in the absence of other activity.
An error is then indicated if no response can be elicited on an otherwise
An error is then indicated if no response can be elicited on an otherwise
idle connection for a extended period (e.g., 5 minutes).
idle connection for a extended period (e.g., 5 minutes).
A
A
.Dv SIGPIPE
.Dv SIGPIPE
signal is raised if a process sends on a broken stream; this causes
signal is raised if a process sends on a broken stream; this causes
naive processes, which do not handle the signal, to exit.
naive processes, which do not handle the signal, to exit.
.Pp
.Pp
.Dv SOCK_SEQPACKET
.Dv SOCK_SEQPACKET
sockets employ the same system calls
sockets employ the same system calls
as
as
.Dv SOCK_STREAM
.Dv SOCK_STREAM
sockets.
sockets.
The only difference is that
The only difference is that
.Xr read 2
.Xr read 2
calls will return only the amount of data requested,
calls will return only the amount of data requested,
and any remaining in the arriving packet will be discarded.
and any remaining in the arriving packet will be discarded.
.Pp
.Pp
.Dv SOCK_DGRAM
.Dv SOCK_DGRAM
and
and
.Dv SOCK_RAW
.Dv SOCK_RAW
sockets allow sending of datagrams to correspondents named in
sockets allow sending of datagrams to correspondents named in
.Xr send 2
.Xr send 2
calls.
calls.
Datagrams are generally received with
Datagrams are generally received with
.Xr recvfrom 2 ,
.Xr recvfrom 2 ,
which returns the next datagram with its return address.
which returns the next datagram with its return address.
.Pp
.Pp
An
An
.Xr fcntl 2
.Xr fcntl 2
call can be used to specify a process group to receive
call can be used to specify a process group to receive
a
a
.Dv SIGURG
.Dv SIGURG
signal when the out-of-band data arrives.
signal when the out-of-band data arrives.
It may also enable non-blocking I/O and asynchronous notification
It may also enable non-blocking I/O and asynchronous notification
of I/O events via
of I/O events via
.Dv SIGIO .
.Dv SIGIO .
.Pp
.Pp
The operation of sockets is controlled by socket level
The operation of sockets is controlled by socket level
.Em options .
.Em options .
These options are defined in the file
These options are defined in the file
.Ao Pa sys/socket.h Ac .
.Ao Pa sys/socket.h Ac .
.Xr setsockopt 2
.Xr setsockopt 2
and
and
.Xr getsockopt 2
.Xr getsockopt 2
are used to set and get options, respectively.
are used to set and get options, respectively.
.Sh RETURN VALUES
.Sh RETURN VALUES
A \-1 is returned if an error occurs, otherwise the return
A \-1 is returned if an error occurs, otherwise the return
value is a descriptor referencing the socket.
value is a descriptor referencing the socket.
.Sh ERRORS
.Sh ERRORS
The
The
.Fn socket
.Fn socket
call fails if:
call fails if:
.Bl -tag -width Er
.Bl -tag -width Er
.It Bq Er EPROTONOSUPPORT
.It Bq Er EPROTONOSUPPORT
The protocol type or the specified protocol is not supported
The protocol type or the specified protocol is not supported
within this domain.
within this domain.
.It Bq Er EMFILE
.It Bq Er EMFILE
The per-process descriptor table is full.
The per-process descriptor table is full.
.It Bq Er ENFILE
.It Bq Er ENFILE
The system file table is full.
The system file table is full.
.It Bq Er EACCES
.It Bq Er EACCES
Permission to create a socket of the specified type and/or protocol
Permission to create a socket of the specified type and/or protocol
is denied.
is denied.
.It Bq Er ENOBUFS
.It Bq Er ENOBUFS
Insufficient buffer space is available.
Insufficient buffer space is available.
The socket cannot be created until sufficient resources are freed.
The socket cannot be created until sufficient resources are freed.
.El
.El
.Sh SEE ALSO
.Sh SEE ALSO
.Xr accept 2 ,
.Xr accept 2 ,
.Xr bind 2 ,
.Xr bind 2 ,
.Xr connect 2 ,
.Xr connect 2 ,
.Xr getsockname 2 ,
.Xr getsockname 2 ,
.Xr getsockopt 2 ,
.Xr getsockopt 2 ,
.Xr ioctl 2 ,
.Xr ioctl 2 ,
.Xr listen 2 ,
.Xr listen 2 ,
.Xr poll 2 ,
.Xr poll 2 ,
.Xr read 2 ,
.Xr read 2 ,
.Xr recv 2 ,
.Xr recv 2 ,
.Xr select 2 ,
.Xr select 2 ,
.Xr send 2 ,
.Xr send 2 ,
.Xr setsockopt 2 ,
.Xr setsockopt 2 ,
.Xr shutdown 2 ,
.Xr shutdown 2 ,
.Xr socketpair 2 ,
.Xr socketpair 2 ,
.Xr write 2 ,
.Xr write 2 ,
.Xr getprotoent 3 ,
.Xr getprotoent 3 ,
.Xr netintro 4
.Xr netintro 4
.Rs
.Rs
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
.%O "reprinted in UNIX Programmer's Supplementary Documents Volume 1"
.%O "reprinted in UNIX Programmer's Supplementary Documents Volume 1"
.Re
.Re
.Rs
.Rs
.%T "BSD Interprocess Communication Tutorial"
.%T "BSD Interprocess Communication Tutorial"
.%O "reprinted in UNIX Programmer's Supplementary Documents Volume 1"
.%O "reprinted in UNIX Programmer's Supplementary Documents Volume 1"
.Re
.Re
.Sh HISTORY
.Sh HISTORY
The
The
.Fn socket
.Fn socket
function call appeared in
function call appeared in
.Bx 4.2 .
.Bx 4.2 .
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.