-
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;
}
Następne wpisy z tego wątku
- 26.01.14 19:21 Arkadiusz Dymek
- 27.01.14 02:55 Tomasz Sowa
- 27.01.14 11:08 firr
- 29.11.14 12:47 firr
- 29.11.14 15:47 M.M.
- 29.11.14 20:38 firr
- 29.11.14 20:46 firr
- 03.12.14 14:35 M.M.
- 03.12.14 15:20 firr
- 17.12.14 14:19 M.M.
- 17.12.14 15:12 firr
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=