8 //---------------------------------------------------------------
10 //---------------------------------------------------------------
16 //---------------------------------------------------------------
18 //---------------------------------------------------------------
23 #include <sys/socket.h>
24 #include <arpa/inet.h>
26 #include <netinet/in.h>
29 #ifndef TRANSPORT_SOCKET_H
30 #define TRANSPORT_SOCKET_H
32 /* how many characters we read from the socket at a time */
39 /* we maintain the socket information */
40 struct transport_socket_struct {
41 /* for a client, sock_fd is THE socket connection. For a server,
42 it's the socket we listen on */
45 char* server; /* remote server name or ip */
49 /* user_data may be anything. it's whatever you wish
50 to see showing up in the callback in addition to
51 the acutal character data*/
52 void (*data_received_callback) (void * user_data, char*);
54 typedef struct transport_socket_struct transport_socket;
56 /* connects. If is_server is true, we call tcp_server_connect */
57 int tcp_connect( transport_socket* obj );
59 int tcp_send( transport_socket* obj, const char* data );
61 int tcp_disconnect( transport_socket* obj );
63 /* does both client and server waiting.
64 returns the socket_fd on success, 0 on error */
65 int tcp_wait( transport_socket* obj, int timeout );
67 int tcp_connected(transport_socket* obj);