int connect( int socket, const struct sockaddr *address, socklen_t address_len);

Mittels der connect()-Funktion versucht ein Client eine Verbindung zum Server aufzubauen. Der Socket, der dazu verwendet werden soll, wird der Funktion als Parameter socket übergeben. Die Adresse des Servers wird durch den Parameter address angegeben. Die Größe der Struktur sockaddr wird durch den Parameter address_len mitgeteilt. Konnte die Verbindung zwischen Client und Server erfolgreich aufgebaut werden, dann liefert die Funktion den Wert 0, sonst -1 zurück.

Man könnte nun meinen, dass im Fall eines Fehlers während der Verbindung nur die connect()-Funktion erneut aufgerufen werden muss (re-connect), um den Fehler zu korrigieren. Dies geht leider nicht: Obwohl alle Verbindungsdaten in der Socket-Schnittstelle verfügbar sind, muss die bestehende Verbindung zunächst beendet werden, ein neuer Socket geöffnet werden und die connect()-Funktion erneut aufgerufen werden.

Beispiel:

int sock;
int return_value;
struct sockaddr_in server;

return_value = connect(sock,(struct sockaddr*) &server, sizeof(struct sockaddr_in);
if (return_value < 0)
{
	perror(“connecting stream socket”);
	exit(1);
}