-
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
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
Najnowsze wątki
- 2025-05-21 gdzie kupujecie OC
- 2025-05-21 Budowa II linii metra w Warszawie. Tunele na Bemowie gotowe
- 2025-05-21 Kiepska prognoza dla Niemiec: zerowy wzrost - powód: biurokracja, cła Trumpa i wysokie koszty energii
- 2025-05-21 Śmieciowy koszmar Alaksandra Łukaszenki
- 2025-05-21 Poseł Ciecióra oświadczył, że jest pijany, ale nie był badany.
- 2025-05-21 Aktor Jacek Kopczyński zatrzymany przez policję
- 2025-05-21 Jak włączyć dźwięk startu Asystenta?
- 2025-05-21 Alternatywni dostawcy prądu
- 2025-05-21 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-05-21 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-05-21 Czujniki czadu, dymu w domach, nie wykrywaj?��������������� gazu
- 2025-05-21 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-05-21 Rzeszów => Spedytor Międzynarodowy <=
- 2025-05-21 Białystok => Programista Delphi <=
- 2025-05-21 B. ksiądz nie nazwał wysokich funkcjonariuszy publicznych idiotami, idiota [wyrok w zawiasach]