- /* vim: ts=4 sw=4 sts=4 ff=unix fenc=utf-8 :
- * =====================================================================
- * sc_socket.h
- * Copyright (c) 2003 - 2011 sys0tem
- * LICENSE :
- * LGPL (GNU Lesser General Public License - Version 3,29 June 2007)
- * http://www.gnu.org/copyleft/lesser.html
- * or
- * EPL (Eclipse Public License - v1.0)
- * http://www.eclipse.org/legal/epl-v10.html
- * =====================================================================
- */
- #ifndef __SC_SOCKET_H__
- #define __SC_SOCKET_H__
-
- #include <sc_os.h>
-
- #if (SC_isWindows)
- #ifndef _WIN32_WINNT
- #define _WIN32_WINNT 0x0501
- #endif /* _WIN32_WINNT */
- #include <windows.h>
- #include <winsock2.h>
- #include <ws2tcpip.h>
- #ifdef _MSV_VER
- #pragma comment(lib, "ws2_32.lib")
- #endif
- typedef SOCKET socket_t;
- #define socket_close(sockfd) closesocket(sockfd)
- #define SHUT_RD SD_RECEIVE
- #define SHUT_WR SD_SEND
- #define SHUT_RDWR SD_BOTH
- typedef long ssize_t;
- #else
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdlib.h>
- #include <unistd.h>
- typedef int socket_t;
- #define socket_close(sockfd) close(sockfd)
- #define INVALID_SOCKET (-1)
- #define SOCKET_ERROR (-1)
-
- #endif /* if (SC_isWindows) */
-
- #include <sc_error.h>
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #define SC_SOCKET_TEMPBUFF_SIZE (1024)
-
- bool SC_Socket_init(void);
- int SC_getSocketError(void);
- socket_t SC_Socket_tcpConnect(const char*, const char*);
- socket_t SC_Socket_tcpListen(const char*, const char*, socklen_t*, int);
- socket_t SC_Socket_udpClient(const char*, const char*, struct sockaddr**, socklen_t*);
- socket_t SC_Socket_udpServer(const char*, const char*, socklen_t*);
- bool SC_Socket_close(socket_t sockfd);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __SC_SOCKET_H__ */
-