00001
00002
00003
00004
00005
00006
00007
00008
00014
00015
00016 #ifndef SOCKET_COMMON_H
00017 #define SOCKET_COMMON_H
00018
00019 #include <pthread.h>
00020 #ifndef WIN32
00021 #include <netinet/in.h>
00022 #else
00023 #include <winsock.h>
00024 #endif
00025
00026 #include "altsocklib.h"
00027 #include "win32_compatibility.h"
00028
00034 #define SOCK_ERROR "!! "
00035 #define SOCK_INFO "?? "
00036 #define SOCK_SENT "-> "
00037 #define SOCK_RECEIVED "<- "
00038
00039
00045 struct sock_state_t
00046 {
00048 int socket;
00050 char *hostname;
00052 char *welcomestring;
00054 char *ipaddress;
00056 unsigned long realport;
00058 recvbuffer_t *prb;
00060 void (*print)(char *);
00062 int error_occurred;
00064 int maxlinelen;
00065 };
00066
00067
00068
00074
00075 extern void sock_print(char *prebuffer,char *buffer,struct sock_state_t *s);
00077 extern void sock_error(char *type,int ernum,struct sock_state_t *s);
00079 extern void sock_received(char *buffer,struct sock_state_t *s);
00081 extern void sock_sent(char *buffer,struct sock_state_t *s);
00083 extern void sock_info(char *buffer,struct sock_state_t *s);
00085
00086
00087
00092
00093 extern void sock_send(struct sock_state_t *s,char* buffer);
00095 extern void sock_sendraw(struct sock_state_t *s,char* buffer);
00097 extern int sock_receive(struct sock_state_t *s,char* buffer,int maxlen);
00099 extern int sock_receive_with_timeout(struct sock_state_t *s,char* buffer,int maxlen, int timeout);
00101
00102
00103
00108
00109 extern struct sock_state_t * sock_connect(char *hostname,unsigned long port,int maxlinelen,void (*print)(char *));
00111 extern void sock_disconnect(struct sock_state_t *s);
00113 extern struct sock_state_t * sock_bind(struct in_addr bind_add,unsigned short port,int maxlinelen,void (*print)(char *));
00115 extern struct sock_state_t * sock_listen(struct sock_state_t * s);
00117
00118 #endif