#include #include #include #define BUFSIZE 1000 using namespace std; int main(int argc, char *argv[]) { WORD wVersionRequested = MAKEWORD(1, 1); // Číslo verzie WSADATA data; // Struktura s info. o kniznici string text("Ahoj\n"); // Odosielaný a prijímaný text hostent *host; // Vzdialený počítač sockaddr_in serverSock; // Vzdialený "koniec potrubia" int mySocket; // Socket int port; // Číslo portu char buf[BUFSIZE]; // Prijímací buffer int size; // Počet prijatých a odoslaných bytov if (argc != 3) { cerr << "Syntax:\n\t" << argv[0] << " " << "adresa port" << endl; return -1; } // Pripravíme sockety na prácu if (WSAStartup(wVersionRequested, &data) != 0) { cout << "Nepodarilo se inicializovat sockety" << endl; return -1; } port = atoi(argv[2]); // Zistíme info o vzdialenom počítači if ((host = gethostbyname(argv[1])) == NULL) { cerr << "Zla adresa" << endl; WSACleanup(); return -1; } // Vytvoríme socket if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { cerr << "Socket sa neda vytvorit" << endl; WSACleanup(); return -1; } // Zaplníme strukturu sockaddr_in // 1) Rodina protokolov serverSock.sin_family = AF_INET; // 2) Číslo portu, ku ktorému se pripojíme serverSock.sin_port = htons(port); // 3) Nastavenie IP adresy, ku ktorej se pripojíme memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length); // Připojení soketu if (//todo volanie funkcie connect == -1) { cerr << "Neda sa nadvizat spojenie" << endl; WSACleanup(); return -1; } // Odosielanie dat if (//todo volanie funkcie send == -1) { cerr << "Problém s odoslanim dat" << endl; WSACleanup(); return -1; } cout << "Odoslane " << size << endl; // Príjem dat text = ""; while (//todo volanie funkcie recv && (size != -1)) { cout << "Prijate " << size << endl; text += buf; } if (size == -1) { cout << "nedaju sa prijat data" << endl; } // Uzavrenie spojenia closesocket(mySocket); WSACleanup(); cout << endl << text << endl; return 0; }