7 #if ( defined(DUMMY_VMDSOCK) ) 17 int vmdsock_write(
void * v,
const void *buf,
int len) {
return 0; }
18 int vmdsock_read(
void * v,
void *buf,
int len) {
return 0; }
25 #define VMDSOCKINTERNAL 27 #include <sys/types.h> 32 #if defined(WIN32) && !defined(__CYGWIN__) 36 #include <arpa/inet.h> 40 #include <sys/socket.h> 49 typedef NAMD_SOCKLEN_T socklen_t;
53 #if defined(WIN32) && !defined(__CYGWIN__) 60 static int initialized=0;
64 rc = WSAStartup(MAKEWORD(1,1), &wsdata);
79 s = (vmdsocket *) malloc(
sizeof(vmdsocket));
81 memset(s, 0,
sizeof(vmdsocket));
83 if ((s->sd = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
84 printf(
"Failed to open socket.");
93 vmdsocket *s = (vmdsocket *) v;
97 h=gethostbyname(host);
100 sprintf(address,
"%d.%d.%d.%d",
101 (
unsigned char) h->h_addr_list[0][0],
102 (
unsigned char) h->h_addr_list[0][1],
103 (
unsigned char) h->h_addr_list[0][2],
104 (
unsigned char) h->h_addr_list[0][3]);
106 memset(&(s->addr), 0,
sizeof(s->addr));
107 s->addr.sin_family = PF_INET;
108 s->addr.sin_addr.s_addr = inet_addr(address);
109 s->addr.sin_port = htons(port);
111 return connect(s->sd, (
struct sockaddr *) &s->addr,
sizeof(s->addr));
115 vmdsocket *s = (vmdsocket *) v;
116 memset(&(s->addr), 0,
sizeof(s->addr));
117 s->addr.sin_family = PF_INET;
118 s->addr.sin_port = htons(port);
120 return bind(s->sd, (
struct sockaddr *) &s->addr,
sizeof(s->addr));
124 vmdsocket *s = (vmdsocket *) v;
125 return listen(s->sd, 5);
130 vmdsocket *new_s = NULL, *s = (vmdsocket *) v;
133 len =
sizeof(s->addr);
134 rc = accept(s->sd, (
struct sockaddr *) &s->addr, &len);
136 new_s = (vmdsocket *) malloc(
sizeof(vmdsocket));
142 return (
void *)new_s;
146 vmdsocket *s = (vmdsocket *) v;
147 #if defined(WIN32) && !defined(__CYGWIN__) 148 return send(s->sd, (
const char*) buf, len, 0);
150 return write(s->sd, buf, len);
155 vmdsocket *s = (vmdsocket *) v;
156 #if defined(WIN32) && !defined(__CYGWIN__) 157 return recv(s->sd, (
char*) buf, len, 0);
159 return read(s->sd, buf, len);
165 vmdsocket * s = (vmdsocket *) v;
169 #if defined(WIN32) && !defined(__CYGWIN__) 178 vmdsocket *s = (vmdsocket *)v;
185 memset((
void *)&tv, 0,
sizeof(
struct timeval));
188 rc = select(s->sd+1, &rfd, NULL, NULL, &tv);
189 }
while (rc < 0 && errno == EINTR);
195 vmdsocket *s = (vmdsocket *)v;
202 memset((
void *)&tv, 0,
sizeof(
struct timeval));
205 rc = select(s->sd + 1, NULL, &wfd, NULL, &tv);
206 }
while (rc < 0 && errno == EINTR);
int vmdsock_selwrite(void *v, int sec)
void * vmdsock_create(void)
int vmdsock_selread(void *v, int sec)
int vmdsock_connect(void *v, const char *host, int port)
int vmdsock_listen(void *v)
int vmdsock_bind(void *v, int port)
void vmdsock_destroy(void *v)
int vmdsock_write(void *v, const void *buf, int len)
int vmdsock_read(void *v, void *buf, int len)
void * vmdsock_accept(void *v)