-extern int connect_to(char *host, int portnum, struct client_state *csp);
-extern int write_socket(int fd, const char *buf, int n);
-extern int read_socket(int fd, char *buf, int n);
-extern void close_socket(int fd);
+#include "project.h"
+
+struct client_state;
+
+extern jb_socket connect_to(const char *host, int portnum, struct client_state *csp);
+extern int write_socket(jb_socket fd, const char *buf, size_t n);
+extern int write_socket_delayed(jb_socket fd, const char *buf, size_t len, unsigned int delay);
+extern int read_socket(jb_socket fd, char *buf, int n);
+extern int data_is_available(jb_socket fd, int seconds_to_wait);
+extern void close_socket(jb_socket fd);
+extern void drain_and_close_socket(jb_socket fd);