00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __SOCKET_XSB_H__
00026
00027 #define __SOCKET_XSB_H__
00028
00029 #include "socket_defs_xsb.h"
00030
00031
00032
00033
00034 #ifdef WIN_NT
00035
00036 #define BAD_SOCKET(sockfd) sockfd==INVALID_SOCKET
00037 #define SOCKET_OP_FAILED(sockfd) sockfd==SOCKET_ERROR
00038 #define IS_IP_ADDR(string) inet_addr(string) != INADDR_NONE
00039 #define XSB_SOCKET_ERRORCODE WSAGetLastError()
00040 #define FillWithZeros(addr) ZeroMemory(&addr, sizeof(addr));
00041 #define EINPROGRESS WSAEINPROGRESS
00042 #define EWOULDBLOCK WSAEWOULDBLOCK
00043 #define SET_SOCKET_BLOCKING(fd, val) (ioctlsocket(fd, FIONBIO, (u_long FAR *)&val) == 0)
00044 #define GETSOCKOPT(fd,lvl,optname,optval,optlen) getsockopt(fd, lvl, optname, (char *)optval, optlen)
00045 #define SETSOCKOPT(fd,lvl,optname,optval,optlen) setsockopt(fd, lvl, optname, (char *)optval, optlen)
00046
00047
00048 #else
00049
00050 #define SOCKET int
00051 #define SOCKADDR_IN struct sockaddr_in
00052 #define PSOCKADDR struct sockaddr *
00053 #define closesocket close
00054 #define XSB_SOCKET_ERRORCODE errno
00055 #define BAD_SOCKET(sockfd) sockfd<0
00056 #define SOCKET_OP_FAILED(sockfd) sockfd<0
00057 #define IS_IP_ADDR(string) inet_addr(string) != -1
00058 #define FillWithZeros(addr) memset((char *)&addr, (int) 0, sizeof(addr));
00059 #define SET_SOCKET_BLOCKING(fd, val) (val \
00060 ? (fcntl(fd, F_SETFL, (fcntl(fd, F_GETFL, 0) | O_NONBLOCK)) != -1) \
00061 : (fcntl(fd, F_SETFL, (fcntl(fd, F_GETFL, 0) ^ O_NONBLOCK)) != -1))
00062 #define GETSOCKOPT(fd,lvl,optname,optval,optlen) getsockopt(fd, lvl, optname, (void *)optval, optlen)
00063 #define SETSOCKOPT(fd,lvl,optname,optval,optlen) setsockopt(fd, lvl, optname, (void *)optval, optlen)
00064
00065 #endif
00066
00067
00068
00069 #define MAXCONNECT 50
00070
00071
00072
00073 #define XSB_MSG_HEADER_LENGTH sizeof(int)
00074
00075
00076 #define SOCK_READMSG_FAILED -1
00077 #define SOCK_READMSG_EOF -2
00078
00079 #endif
00080
00081
00082
00083
00084
00085
00086
00087