3 #define in_addr_t unsigned long
6 #endif //tells VCC not to generate min/max macros
9 #define SOCKET_ERROR -1
11 #include <sys/types.h>
17 #include <sys/socket.h>
18 #include <netinet/in.h>
19 #include <arpa/inet.h>
30 if ( 0 == ioctlsocket( socket, FIONREAD, &datato ) )
39 FD_SET( socket, &rfds );
40 if ( ( selres = select( socket+1, &rfds, NULL, NULL, &tv ) ) ) {
51 closesocket( socket );
64 return recv( socket, data, bytestoread, 0 );
70 while (bytes_read < bytestoread) {
71 ret =
recv( socket, data+bytes_read, bytestoread-bytes_read, 0 );
81 return send( socket, data, bytestowrite, 0 );
86 WORD wVersionRequested = MAKEWORD( 1, 1 );
88 WSAStartup( wVersionRequested, &wsaData );
100 bool gotaddr =
false;
101 connexto.sin_port = htons( port );
102 connexto.sin_family = AF_INET;
103 if (hostname == NULL)
104 connexto.sin_addr.s_addr = INADDR_ANY;
105 hostent *addrs = gethostbyname( hostname );
107 if (addrs->h_addr_list[0]) {
108 memset( &connexto.sin_addr, 0,
sizeof (in_addr) );
109 if ( addrs->h_length > (
int)
sizeof (in_addr) )
110 addrs->h_length =
sizeof (in_addr);
111 memcpy( &connexto.sin_addr, addrs->h_addr_list[0], addrs->h_length );
115 in_addr_t tmp = inet_addr( hostname );
116 memcpy( &connexto.sin_addr, &tmp,
sizeof (in_addr_t) <
sizeof (in_addr) ?
sizeof (in_addr_t) :
sizeof (in_addr) );
117 if (*( (
int*) &tmp ) != -1)
126 struct sockaddr_in Address;
127 #if defined (_WIN32) || defined (__CYGWIN__) || defined (MAC_OS_X_VERSION_10_3) || defined (MAC_OS_X_VERSION_10_2) \
128 || defined (MAC_OS_X_VERSION_10_1)
133 nAddressSize =
sizeof (
struct sockaddr_in);
134 hServerSocket =
socket( AF_INET, SOCK_STREAM, 0 );
137 sockerr = INVALID_SOCKET;
139 if (hServerSocket == sockerr) {
141 int err = WSAGetLastError();
142 printf(
"\nCould not make a socket %d\n", err );
148 Address.sin_addr.s_addr = INADDR_ANY;
149 Address.sin_family = AF_INET;
150 if (bind( hServerSocket, (
struct sockaddr*) &Address,
sizeof (Address) )
152 printf(
"\nCould not connect to host\n" );
153 printf(
"%d Error ", errno );
156 getsockname( hServerSocket, (
struct sockaddr*) &Address, &nAddressSize );
157 if (listen( hServerSocket, listenqueue ) ==
SOCKET_ERROR) {
158 printf(
"\nCould not listen\n" );
161 return hServerSocket;
167 #if defined (_WIN32) || defined (__CYGWIN__) || defined (MAC_OS_X_VERSION_10_3) || defined (MAC_OS_X_VERSION_10_2) \
168 || defined (MAC_OS_X_VERSION_10_1)
173 nAddressSize =
sizeof (Address);
174 return accept( hServerSocket, (
struct sockaddr*) &Address, &nAddressSize );
186 sockaddr_in connexto;
187 int aftype = AF_INET;
194 my_socket =
socket( aftype, SOCK_STREAM, 0 );
196 if (connect( my_socket, (
struct sockaddr*) &connexto,
sizeof (connexto) ) != -1) {
201 fprintf( stderr,
"Socket Error %d", WSAGetLastError() );