30 #include <sys/types.h> 31 #include <sys/param.h> 32 #include <sys/socket.h> 33 #include <netinet/in.h> 34 #include <netinet/tcp.h> 35 #include <arpa/inet.h> 60 struct sockaddr_in tcp_srv_addr;
65 char *server_host = (
char *)
"127.0.0.1";
69 struct sockaddr_in in;
71 struct sockaddr *saddr = (
struct sockaddr *) &saddr_buf;
79 inaddr = inet_addr (server_host);
80 memset ((
void *) &tcp_srv_addr, 0,
sizeof (tcp_srv_addr));
81 tcp_srv_addr.sin_family = AF_INET;
82 tcp_srv_addr.sin_port =
htons (server_port);
86 memcpy ((
void *) &tcp_srv_addr.sin_addr, (
void *) &inaddr, sizeof (inaddr));
91 hp = gethostbyname (server_host);
98 memcpy ((
void *) &tcp_srv_addr.sin_addr, (
void *) hp->h_addr, hp->h_length);
100 slen =
sizeof (tcp_srv_addr);
101 memcpy ((
void *) saddr, (
void *) &tcp_srv_addr, slen);
103 sockfd = socket (saddr->sa_family, SOCK_STREAM, 0);
112 setsockopt (sockfd, IPPROTO_TCP, TCP_NODELAY, (
char *) &b,
sizeof (b));
115 success = connect (sockfd, saddr, slen);
137 struct linger linger_buffer;
139 linger_buffer.l_onoff = 1;
140 linger_buffer.l_linger = 0;
141 setsockopt (sockfd, SOL_SOCKET, SO_LINGER, (
char *) &linger_buffer,
sizeof (linger_buffer));
143 closesocket (sockfd);
166 ptr = (
const char *) vptr;
172 nwritten = send (fd, ptr, nleft, 0);
174 nwritten = send (fd, ptr, (
size_t) nleft, 0);
180 if (nwritten < 0 && errno == WSAEINTR)
182 if (nwritten < 0 && errno == EINTR)
224 nread = recv (fd, ptr, nleft, 0);
226 nread = recv (fd, ptr, (
size_t) nleft, 0);
233 if (errno == WSAEINTR)
266 windows_blocking_hook ()
279 windows_socket_startup (FARPROC hook)
281 WORD wVersionRequested;
286 wVersionRequested = 0x101;
287 err = WSAStartup (wVersionRequested, &wsaData);
295 hook = WSASetBlockingHook ((FARPROC) windows_blocking_hook);
299 err = WSAGetLastError ();
301 (void) WSACleanup ();
316 windows_socket_shutdown (FARPROC hook)
322 (void) WSASetBlockingHook (hook);
#define ERR_CSS_TCP_HOST_NAME_ERROR
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
#define IS_INVALID_SOCKET(socket)
unsigned short htons(unsigned short from)
void jsp_disconnect_server(const SOCKET sockfd)
void er_set_with_oserror(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
#define ER_CSS_WINSOCK_STARTUP
int jsp_writen(SOCKET fd, const void *vptr, int n)
SOCKET jsp_connect_server(int server_port)
int jsp_readn(SOCKET fd, void *vptr, int n)
#define ER_SP_CANNOT_CONNECT_JVM