7 * By John Hodge (thePowersGang)
9 #ifndef _SYS_SOCKETS_H_
10 #define _SYS_SOCKETS_H_
12 #include <sys/types.h>
14 typedef int socklen_t;
26 sa_family_t sa_family;
31 * \brief Values for \a domain of socket()
35 PF_LOCAL, //!< Machine-local comms
38 PF_PACKET //!< Low level packet interface
40 #define PF_UNIX PF_LOCAL
44 SOCK_STREAM, //!< Stream (TCP)
45 SOCK_DGRAM, //!< Datagram (UDP)
47 SOCK_RAW, //!< Raw packet access
48 SOCK_RDM //!< Reliable non-ordered datagrams
52 * \brief Create a new socket descriptor
53 * \param domain Address family
55 extern int socket(int domain, int type, int protocol);
58 * \brief Bind a socket to an address
60 extern int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
63 * \brief Connect to another socket
65 extern int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
68 * \brief Listen for incoming connections
70 extern int listen(int sockfd, int backlog);
73 * \brief Accept an incoming connection
75 extern int accept(int sockfd, struct sockaddr *clientaddr, socklen_t addrlen);
77 extern int recvfrom(int sockfd, void *buffer, size_t length, int flags, struct sockaddr *clientaddr, socklen_t *addrlen);
78 extern int recv(int sockfd, void *buffer, size_t length, int flags);
79 extern int sendto(int sockfd, const void *buffer, size_t length, int flags, const struct sockaddr *clientaddr, socklen_t addrlen);
80 extern int send(int sockfd, void *buffer, size_t length, int flags);