00001
00002 #ifndef _WORM_SOCKET_H
00003 #define _WORM_SOCKET_H
00004
00005
00006 #if defined(_WNNT) || defined(_Windows)
00007
00008
00009
00010
00011 #if !defined(_WINSOCKAPI_)
00012 #define _WINSOCKAPI_ // prevent wacko compilation errors
00013 #endif
00014 #include <windows.h>
00015
00016 #include <winsock2.h>
00017
00018 #define WORM_WOULDBLOCK WSAEWOULDBLOCK
00019
00020 #elif defined(_SOLARIS)
00021
00022 #include <sys/types.h>
00023 #include <socket.h>
00024
00025 #define WORM_WOULDBLOCK EWOULDBLOCK
00026
00027 #else
00028
00029 #error worm_socket.h not completed for this O/S
00030
00031 #endif
00032
00033
00034 enum SOCKET_CLOSE_TYPE
00035 {
00036 SOCKET_DONT_CLOSE
00037 , SOCKET_CLOSE_IMMEDIATELY
00038 , SOCKET_CLOSE_GRACEFULLY
00039 , SOCKET_CLOSE_SIMPLY
00040 };
00041
00042
00043
00044
00045
00046
00047
00048 enum WS_FUNCTION_ID
00049 {
00050 WSF_NONE
00051 , WSF_IOCTLSOCK
00052 , WSF_SETSOCKOPT
00053 , WSF_GETSOCKOPT
00054 , WSF_GETSOCKOPT_ERR
00055 , WSF_SOCKET
00056 , WSF_INET_ADDR
00057 , WSF_GETHOSTBYADDR
00058 , WSF_CONNECT
00059 , WSF_SELECT
00060 , WSF_BIND
00061 , WSF_LISTEN
00062 , WSF_ACCEPT
00063 , WSF_SEND
00064 , WSF_RECV
00065 , WSF_RECVFROM
00066 };
00067
00068
00069
00070 enum SOCKET_RECV_STATUS
00071 {
00072 RECV_STATUS_ERROR = -3
00073 , RECV_STATUS_BADPARAM = -2
00074 , RECV_STATUS_CLIENTCLOSED = -1
00075 , RECV_STATUS_COMPLETE = 0
00076 , RECV_STATUS_NOTHING = 1
00077 , RECV_STATUS_PARTIAL = 2
00078 , RECV_STATUS_TIMEDOUT = 3
00079 , RECV_STATUS_CANCELLED = 4
00080 };
00081
00082 enum SOCKET_SEND_STATUS
00083 {
00084 SEND_STATUS_ERROR = -3
00085 , SEND_STATUS_CLIENTCLOSED = -2
00086 , SEND_STATUS_BADPARAM = -1
00087 , SEND_STATUS_GOOD = 0
00088 , SEND_STATUS_TIMEDOUT = 1
00089 , SEND_STATUS_CANCELLED = 2
00090 };
00091
00092
00093 #endif
00094
00095