D
Vielleicht hilft dir das weiter:
/*****************************************************************************
*
* open a tcp connection
*
* DestIPStr: destionation IP address format xxx.xxx.xxx.xxx
* ClientPort: local port (0=random port)
* HostPort: remote port
* error: TCP/IP error
*
*
* return: socket descriptor (-1 = error)
*/
int tcp_connect(char *DestIPStr, unsigned int ClientPort, unsigned int HostPort, int *error)
{
struct sockaddr_in addr;
unsigned long DestIPAddr;
int sd; // socket descriptor
int dummyerror;
// open socket
sd = opensocket(SOCK_STREAM,error);
if (sd==-1 || *error!=0)
{
return -1;
}
addr.sin_family = PF_INET;
addr.sin_port = htons(ClientPort); // convert byte order
addr.sin_addr.s_addr = 0;
if (ClientPort!=0)
{ // force client port
bind(sd, (struct sockaddr *)&addr, error);
if (*error!=0)
{
closesocket(sd, &dummyerror);
return -1;
}
}
addr.sin_port = htons(HostPort); // convert byte order
// convert server IP address string to binary
*error = inet_addr(DestIPStr,&DestIPAddr);
if (*error!=0)
{
closesocket(sd, &dummyerror);
return -1;
}
addr.sin_addr.s_addr = DestIPAddr;
// establish a connection to the FTP server
connect(sd, (struct sockaddr *) &addr, error);
if (*error!=0)
{
closesocket(sd, &dummyerror);
return -1;
};
*error = 0;
return sd;
} // tcp_connect()