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);
|
Initializes/Accepts connection requests from listing
|
A new socket descriptor???
|
SOListen
|
int SOListen(int fd, int backlog);
|
Listens for connections
|
SO_*
|
SOAccept
|
int SOAccept(int fd, struct sockaddr *addr, int *addrlen);
|
Same as SOSend but with target specified
|
SO_*
|
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?
|