next up previous contents
Next: Példa egy select-et Up: Példák a socket Previous: Példa egy egyszeru

Példa egy összeköttetés-alapú kliensre

A következo program a megadott host megadott TCP portjával felépít egy kapcsolatot, és adatokat küld át oda.

/*
 * Hasznalata: programnev hostnev TCPport-number
 *
 * A program letrehoz a megadott hoston, a megadott TCP porttal
 * egy kapcsolatot. Rair egy uzenetet es megall.
 */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>

#define DATA "Isten hozta ornagyur."

main(argc, argv)
        int argc;
        char *argv[];
{
        int sock;
        struct sockaddr_in server;
        struct hostent *hp, *gethostbyname();
        char buf[1024];

        sock = socket(AF_INET, SOCK_STREAM, 0);
        if (sock < 0) {
                perror("hiba a socket-nel");
                exit(1);
        }
        server.sin_family = AF_INET;
        hp = gethostbyname(argv[1]);
        if (hp == NULL) {
                fprintf(stderr, "%s: ismeretlen host\n", argv[1]);
                exit(2);
        }
        bcopy(hp->h_addr, &server.sin_addr, hp->h_length);
        server.sin_port = htons(atoi(argv[2]));

        if (connect(sock, &server, sizeof(server)) < 0) {
                perror("hiba a connect-nel");
                exit(1);
        }
        if (write(sock, DATA, sizeof(DATA)) < 0)
                perror("hiba a write-nal");
        close(sock);
}



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996