eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingłaczenie dwu kompów kablem i programowanie ichRe: łaczenie dwu kompów kablem i programowanie ich
  • Data: 2014-01-23 09:56:40
    Temat: Re: łaczenie dwu kompów kablem i programowanie ich
    Od: firr <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: