/******************************************/ /* */ /* Prof. Dr. Carsten Vogt */ /* TH Koeln, Fakultaet IME */ /* http://www.nt.th-koeln.de/vogt */ /* */ /* UNIX-C-Schnittstelle: */ /* Kommunikation ueber lokale Sockets */ /* Hier: Clientprozess als Sender; */ /* Serverprozess als Empfaenger in */ /* socket_server.c. */ /* (Erst den Server-[Empfaenger-]prozess */ /* im Hintergrund starten, dann den */ /* Client-[Sender-]Prozess.) */ /* */ /******************************************/ #include #include #include #include #include #include int main() { int sd_out; /* Identifikator fuer den eigenen Socket */ int error; /* Hilfsvariable */ struct sockaddr server_addr; /* fuer die Socket-Adresse des Partners */ /* Erzeugung des eigenen Sockets (Stream-Socket in der UNIX-Domain, also lokal). */ printf(" Client: socket()\n"); sd_out = socket(AF_UNIX,SOCK_STREAM,0); /* Aufbau der Adresse des Partner-Sockets (Socket befindet sich auf demselben Rechnerknoten, hat den Namen "Socket_1"). */ server_addr.sa_family = AF_UNIX; strcpy(server_addr.sa_data,"Socket_1"); /* Verbindung des eigenen Sockets mit dem Partner-Socket. */ printf(" Client: connect()\n"); error = connect(sd_out,&server_addr,sizeof(struct sockaddr)); if (error == -1) exit(-1); printf(" Client: connect() erfolgreich\n"); /* Uebertragung einer Nachricht an den Partner */ printf(" Client: write()\n"); write(sd_out,"Hallo",6); }