# Socket Errors

The socket extension was written to provide a usable interface to the powerful BSD sockets. Care has been taken that the functions work equally well on Win32 and Unix implementations. Almost all of the sockets functions may fail under certain conditions and therefore emit an `E_WARNING` message describing the error. Sometimes this doesn't happen to the desire of the developer. For example the function `socket_read` may suddenly emit an `E_WARNING` message because the connection broke unexpectedly. It's common to suppress the warning with the `@`-operator and catch the error code within the application with the `socket_last_error` function. You may call the `socket_strerror` function with this error code to retrieve a string describing the error. See their description for more information.

The `E_WARNING` messages generated by the socket extension are in English though the retrieved error message will appear depending on the current locale (`LC_MESSAGES`):

    Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet