2 * Copyright (c) 2007 Ryan Dahl <ry.d4hl@gmail.com>
9 #include <sys/socket.h>
10 #include <netinet/in.h>
14 #define TCP_SOCKET_WARNING 0 /* just a warning, tell the user */
15 #define TCP_SOCKET_ERROR 1 /* an error, the operation cannot complete */
16 #define TCP_SOCKET_FATAL 2 /* an error, the operation must be aborted */
17 typedef void (*tcp_socket_error_cb
) (int severity
, char *message
);
19 typedef void (*tcp_socket_read_cb
)(tcp_socket
*, char *buffer
, size_t length
);
21 typedef struct tcp_socket
{
24 tcp_socket_error_cb error_cb
;
25 struct sockaddr_in sockaddr
;
28 tcp_socket_read_cb read_cb
;
31 size_t write_buffer_length
;
34 tcp_socket
* tcp_socket_new(tcp_socket_error_cb error_cb
);
35 void tcp_socket_free(tcp_socket
*socket
);
36 void tcp_socket_close(tcp_socket
*socket
);
37 char* tcp_socket_address(tcp_socket
*socket
);
38 void tcp_socket_listen(tcp_socket
*socket
, char *address
, int port
, int backlog
, connect_cb
);
39 size_t tcp_socket_write(tcp_socket
*, char *data
, size_t length
);
41 // client side socket - not implemented
42 // void tcp_socket_connect(tcp_socket *, char *address, int port);