eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingłaczenie dwu kompów kablem i programowanie ich › Re: łaczenie dwu kompów kablem i programowanie ich
  • X-Received: by 10.140.94.11 with SMTP id f11mr132120qge.7.1390467400665; Thu, 23 Jan
    2014 00:56:40 -0800 (PST)
    X-Received: by 10.140.94.11 with SMTP id f11mr132120qge.7.1390467400665; Thu, 23 Jan
    2014 00:56:40 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!uq10no2576
    921igb.0!news-out.google.com!y18ni2qap.1!nntp.google.com!k15no406589qaq.0!postn
    ews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 23 Jan 2014 00:56:40 -0800 (PST)
    In-Reply-To: <3...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=93.154.216.65;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 93.154.216.65
    References: <d...@g...com>
    <1...@g...com>
    <6...@g...com>
    <3...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <f...@g...com>
    Subject: Re: łaczenie dwu kompów kablem i programowanie ich
    From: firr <p...@g...com>
    Injection-Date: Thu, 23 Jan 2014 08:56:40 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:205028
    [ ukryj nagłówki ]

    W dniu czwartek, 23 stycznia 2014 09:40:19 UTC+1 użytkownik Maciej Sobczak napisał:
    > W dniu środa, 22 stycznia 2014 16:59:27 UTC+1 użytkownik firr napisał:
    >
    >
    >
    > > nie mowie ze nie wygodne itp ale teraz nie
    >
    > > chodzi mi o srodowisko do pisania i testowania
    >
    > > tylko o zalaczenie fizycznie dzialajacego srodowiska
    >
    > > z dwoma fizycznymi kompami byloby dla mnie
    >
    > > drobinke ciekawiej, moze bardziej pobudziloby
    >
    > > mnie to do jakichś testów
    >
    >
    >
    > To prawda, fizyczne instalacje są bardziej inspirujące. Mimo to sugerowałbym jednak
    najpierw opanowanie podstaw na localhost, bo jak od razu zaczniesz od kabelkologii,
    to nie będziesz w stanie samodzielnie diagnozować problemów - zbyt dużo zmiennych na
    raz.
    >
    >
    >
    > Czyli: napisz sobie jakiś klient-serwer i jak już będzie działał poprawnie to
    dopiero wtedy inwestuj w kabelki.
    >
    >
    napisalem kiedys, z pol roku temu, mowie ze
    przeslalem sobie stringa czy dwa i na tym sie
    skonczylo z braku zainteresowania tematem,

    jak ktos chce moze poprawic mi bledy albo
    dodac jakies pomocne uwagi (to jest na podstawie
    jakiegos tutoriala)

    //client

    int runClient()
    {

    WSADATA wsaData;
    WSAStartup( MAKEWORD(2,2), (LPWSADATA)&wsaData );

    /// Collect information of the server

    LPHOSTENT hostEnt = gethostbyname("Q"); if(!hostEnt) {
    ERROR_("Unable to collect gethostbyname()"); WSACleanup(); return SOCKET_ERROR; }

    SOCKADDR_IN serverInfo;
    serverInfo.sin_family = PF_INET;
    serverInfo.sin_addr = *((LPIN_ADDR)*hostEnt->h_addr_list);
    serverInfo.sin_port = htons(1111);

    /// SOCKET & CONNECT

    SOCKET clientSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if(clientSock
    == SOCKET_ERROR) { ERROR_("Unable to create socket"); WSACleanup(); return
    SOCKET_ERROR; }
    int retVal = connect(clientSock,(LPSOCKADDR)&serverInfo, sizeof(serverInfo));
    if(retVal == SOCKET_ERROR) { ERROR_("Unable to connect()"); WSACleanup(); return
    SOCKET_ERROR; }

    Console("Connection made sucessfully");

    // SEND & RESPONSE

    char pSend[] = "Request";
    char pResponseStr[9] = {0};

    retVal = send(clientSock, pSend, strlen(pSend), 0); if(retVal == SOCKET_ERROR)
    { ERROR_("Unable to send()"); WSACleanup(); return SOCKET_ERROR; }
    retVal = recv(clientSock, pResponse, 9, 0); if(retVal == SOCKET_ERROR)
    { ERROR_( "Unable to recv()"); WSACleanup(); return SOCKET_ERROR; }

    Console( " Got the response from server ", pResponse);

    /////////

    closesocket(clientSock);
    WSACleanup();

    return SOCKET_OK;
    }


    /////////server////////////////
    #define SOCKET_OK 0

    int runServer()
    {
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2,2), &wsaData);

    /// Creating socket
    SOCKET servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(servSock == INVALID_SOCKET) { ERROR_("Unable to create socket()"); WSACleanup();
    return SOCKET_ERROR; }

    /// Filling in sockaddr_in struct

    SOCKADDR_IN sin;
    sin.sin_family = PF_INET;
    sin.sin_port = htons(1111);
    sin.sin_addr.s_addr = INADDR_ANY;

    int retVal = bind(servSock, (LPSOCKADDR)&sin, sizeof(sin)); if(retVal ==
    SOCKET_ERROR) { ERROR_("Unable to bind"); WSACleanup(); return SOCKET_ERROR; }

    /// Trying to listen socket
    retVal = listen(servSock, 10); if(retVal ==
    SOCKET_ERROR) { ERROR_("Unable to listen()"); WSACleanup(); return SOCKET_ERROR; }

    /// Waiting for a client
    SOCKET clientSock = accept(servSock, NULL, NULL);
    if(clientSock == INVALID_SOCKET) { ERROR_( "Unable to accept()"); WSACleanup();
    return SOCKET_ERROR; }


    /////////////////////////////////

    char pRequest[8];
    char pResponse[] = "Response";

    retVal = recv(clientSock, pRequest, 8, 0); if(retVal ==
    SOCKET_ERROR) { ERROR_( "Unable to recv() request"); return SOCKET_ERROR; }


    Console(" Got the request from client", pRequest);

    retVal = send(clientSock, pResponse, strlen(pResponse), 0);
    if(retVal == SOCKET_ERROR) { ERROR_( "Unable to send() response"); return
    SOCKET_ERROR; }

    Console(" Response sent ");

    /////////////////////////////
    /// Closing socket
    closesocket(clientSock);
    closesocket(servSock);

    WSACleanup();

    return SOCKET_OK;
    }






Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: