In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Nsysnet.rpl

From WiiUBrew
Revision as of 20:08, 5 April 2015 by Filfat (talk | contribs) (Fixed mess up)
Jump to navigation Jump to search

nsysnet.rpl is the library that provides Berkeley sockets (BSD sockets) related functions. You can find more information about it on Wikipedia

Functions

Base

Name Prototype Description Returns
SOInit int SOInit(void); Initializes the library. SO_*
SOFinish int SOFinish(void); Cleans up after the library. SO_*

Networking

These are also available under their standard BSD names (connect(), recv(), send(), etc.), without the SO* prefix.

Name Prototype Description Returns
SOConnect int SOConnect(int fd, struct sockaddr *addr, int addrlen); Connects to the defined target SO_*
SOListen int SOListen(int fd, int backlog); Listens for connections SO_*
SOAccept int SOAccept(int fd, struct sockaddr *addr, int *addrlen); Initializes/Accepts connection requests from listing A new socket descriptor???
SORecv int SORecv(int fd, void *buffer, int len, int flags); Receive data from a remote socket SO_*
SORecvFrom int SORecvFrom(int fd, void *buffer, int len, int flags, struct sockaddr *from, int *fromlen); Same as SORecv but with target specified SO_*
SOSend int SOSend(int fd, const void *buffer, int len, int flags); Send data to remote socket SO_*
SOSendTo int SOSendTo(int fd, const void *buffer, int len, int flags, const struct sockaddr *dest_addr, int dest_len); Same as SOSend but with target specified SO_*

Error

Name Prototype Description Returns
SOInit int SOLastError(void); Recives the latest error??? The latest error(SO_*)???

Structures

Name Data
sockaddr_in
typedef struct {
    u16 sin_family;
    u16 sin_port;
    struct  in_addr sin_addr;
    char sin_zero[8];
} sockaddr_in;
sockaddr_in
typedef struct {
    u32 s_addr;
} in_addr;

Error Codes

The error codes that SO functions can return. if the error code starts with "SO_E" so were the operation not successful otherwise it were.

Name Value Description
SO_SUCCESS 0 The operation were successful
SO_ETIMEDOUT 2 The connection timed out
SO_ECONNREFUSED 7 The connection were refused
SO_ERROR 41 The operation hit a generic error and were not successful
SO_ELIBNOTREADY 43 The library is not ready, did you forget to initialize it?