9999
Registered +
- Registriert
- Mai 2007
- Beiträge
- 690
Der Quellcode:
Die headerdatei crossnet.h:
PHP:
#include
#include
#include
int main(int argc, char *argv[])
{
SOCKET sock = create_socket( AF_INET, SOCK_STREAM, 0 );
con(sock,AF_INET,"127.0.0.1",80);
if( (send(sock,"test",sizeof("test"),0)) != -1)
{
printf("sent successful\n");
}
system("Pause");
return 0;
}
Die headerdatei crossnet.h:
PHP:
//header file for cross-platform networking
#ifdef __WIN32__
#include
#endif
#ifdef __linux__
#include types.h>
#include socket.h>
#endif
void error_exit(const char *string)
{
#ifdef __WIN32__
printf("%s: %d",string,WSAGetLastError());
#endif
#ifdef __linux__
perror(string);
#endif
exit(-1);
}
int create_socket(int af, int type, int protocol)
{
#ifdef __WIN32__
int err;
LPWSADATA wsadat = (LPWSADATA) malloc(sizeof(LPWSADATA)); //LPWSADATA = wsadat* ==> malloc()
if(WSAStartup(MAKEWORD(2,2),wsadat) != 0)
{
printf("WSAStartup() failed");
exit(-1);
}
#endif
int sock;
if(sock = socket(af,type,protocol) < 0)
{
error_exit("socket creating failed");
}
return sock;
}
void con(int socket, int af, const char *ip, int port)
{
struct sockaddr_in server;
unsigned long addr = inet_addr(ip);
memset( &server, 0, sizeof (server)); //needed?
memcpy((char *) &server.sin_addr, &addr, sizeof(addr));
server.sin_family = af;
server.sin_port = htons(port);
if(connect(socket, (struct sockaddr *)&server, sizeof(server)) != 0)
{
error_exit("connect() failed");
}
}