![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| UNIX for Advanced & ekspertbrukere Expert-til-ekspert. Lær avanserte UNIX UNIX kommandoer, Linux operativsystem, systemadministrasjon, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Problem i HP-Unix mens du skriver inn socket | AshokG | HP-UX | 0 | 02-25-2005 02:19 |
| Socket Programmering socket | soshell | High Level Programmering | 2 | 06-29-2004 08:49 |
| Hvordan kan jeg programmet socket i UNIX? | sanjohn | High Level Programmering | 7 | 06-21-2002 12:26 |
| Hvordan bruke socket | niuzefeng | High Level Programmering | 1 | 06-30-2001 02:15 |
| socket | Amin | IP Networking | 1 | 02-10-2001 04:45 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Unix: socket & Co
Hallo,
Jeg trenger hjelp til å erstatte ................. av client.c som ber om serveren implementert av server.c ------------------ Oppføring 1 - server.c / * Inkludering des différentes librairies nécessaires * / # include <stdio.h> # include <stdlib.h> # include <unistd.h> # include <string.h> # include <sys/types.h> # include <sys/socket.h> # include <netinet.in.h> # include <arpa.inet.h> int main (int argc, char * argv []) ( int res; / * Operandes * / int a, b, buf; / * Socket mise en place côté serveur * / int serv_sock; / * Socket mise en place côté klient * / int cli_sock; / * Adresse de la Sokkel distante * / struct sockaddr_in localaddr; / * Longueur de l'adresse * / socklen_t localaddr_len; / * Longueur de l'adresse * / socklen_t distaddr_len; localaddr_len \u003d sizeof (localaddr); / * Mise en plass de la socket * / serv_sock \u003d socket (AF_INET.SOCK_STREAM, 0); if (serv_sock \u003d socket (AF_INET.SOCK_STREAM, 0); hvis serv_sock (\u003d\u003d -1) ( perror (''Impossible de Créer la socket'') exit (-1); ) / * Mise en plass de la strukturen décrivant l'adresse * Et le port qui seront Associés à la socket * / bzero ((char *) & localaddr, localaddr_len); / * Protokoll internett * / localaddr.sin_family \u003d AF.INET; / * På écoute sur l'adresse de Boucle locale * / localaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1''); / * På écoute sur le port 1234 * / localaddr.sin_port \u003d htons (1234); / * På attache la Sokkel au port 1234 sur * L'adresse locale 127.0.0.1 * / if (bind (serv_sock, (struct sockaddr *) & localaddr, localaddr_len) \u003d\u003d -1) ( perror (''Impossible d'attacher la socket''); exit (-1); ) / * Mise en plass de l'écoute sur la socket * / if (lytte (serv_sock, 1) \u003d\u003d -1) ( perror (''Impossible d'Écouter sur la socket''); exit (-1); ) / * På accepte les Connexions entrantes * / cli_sock \u003d godta (serv_sock, (struct sockaddr *) & distaddr, & distaddr_len); hvis cli_sock (\u003d\u003d -1) ( perror (''Erreur de connexion du klient''); exit (-1); ) / * På recoit la première operande * / res \u003d recv (cli_sock, &buf; sizeof (int), 0); if (res! \u003d sizeof (int)) ( perror (''données recues incorrectes''); close (serv_sock); exit (-1); ) A \u003d ntohl (BUF); printf (''Recu:% d / n'', a); / * På recoit la Deuxième operande * / res \u003d recv (cli_sock, & buf, sizeof (i), 0); if (res! \u003d sizeof (int)) ( perror (''données recues incorrectes''); close (serv_sock); exit (-1); ) b \u003d ntohl (BUF); printf (''Recu:% d \ n'', b); BUF \u003d htonl (a + b); printf (''Envoi:% d \ n'', a + b); / * På envoie le resultat * / res \u003d send (cli_sock, & buf, sizeof (int), 0); if (res! \u003d sizeof (int)) ( perror (''Erreur de girkasse de données''); close (serv_sock); exit (-1) ) close (serv_sock); close (cli_sock); return (); ) ----------------- Oppføring 2 - client.c / / Inkludering des différentes librairies necessaires # include <stdio.h> # include <stdlib.h> # include <unistd.h> # include <string.h> # include <sys/types.h> # include <sys/socket.h> # include <netinet/in.h> # include <arpa/inet.h> int main (int argc, char * argv []) ( int res; / * Operandes * / int a, b, buf; / * Socket mise en place cote serveur * / int serv_sock; / * Socket mise en place cote klient * / int cli_sock; / * Adresse de la Sokkel distante * / struct sockaddr_in distaddr; / * Longueur de l'adresse * / socklen_t distaddr_len; distaddr_len \u003d sizeof (distaddr); A \u003d htonl (123); b \u003d btonl (124); / * Creation de la socket * / cli.sock \u003d ............................. hvis cli_sock (\u003d\u003d -1) ( perror (''Impossible de Créer la socket''); exit (-1); ) / * Mise en plass de la structure decrivant * L'adresse et le port qui seront ASSOCIES * A la socket * / bzero ((char *) & distaddr, distaddr_len); / * Protokoll internett * / distaddr.sin_family \u003d ....................... / * På se connecte sur l'adresse de Boucle locale * / distaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1 "); / * På se connecte sur le port 1234 * / distaddr.sin.port \u003d ............................. / * Connexion au serveur * / serv_sock \u003d .................................... hvis serv_sock (\u003d\u003d -1) ( perror (''Impossible de se connecter''); ) / * På envoi la premiere operande * / res \u003d ..................................... if (res! \u003d sizeof (int)) ( perror (''Impossible d'Envoyer les données''); close (cli_sock); exit (-1); ) / * På envoie la seconde operande * / res \u003d send (cli_sock & b, sizeof (int), 0); if (res! \u003d sizeof (int)) ( perror (''Impossible d'Envoyer les données''); close (cli_sock); exit (-1); ) / * På recupere le resultat * / res \u003d .................................... if (res! \u003d sizeof (int)) ( perror (''Impossible de lire les données''); close (cli_sock); exit (-1); ) printf (''Resultat:% d \ n'', ntohl (buf)); ............................. close (serv_sock); return 0; ) |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|