Advertisement
Guest User

Untitled

a guest
Nov 14th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. // serwer.cpp: definiuje punkt wejścia dla aplikacji konsolowej.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #define _WINSOCK_DEPRECATED_NO_WARNINGS
  6. #pragma comment(lib, "ws2_32.lib")
  7. #include <WinSock2.h>
  8. #include <iostream>
  9.  
  10. int main()
  11. {
  12. //Winsock Startup
  13. WSAData wsaData;
  14. WORD DllVersion = MAKEWORD(2, 1);
  15. if (WSAStartup(DllVersion, &wsaData) != 0) { //Jezeli WSAStartup zwroci cokolwiek innego od 0 to wystapil blad w startupie
  16. MessageBoxA(NULL, "Winsock startup failed", "Error", MB_OK | MB_ICONERROR);
  17. exit(1);
  18. }
  19.  
  20. SOCKADDR_IN addr; //Adres z ktorym zwiazemy nasluchujacy socket
  21. int addrlen = sizeof(addr); //dlugosc adresu (wymagana do accept call)
  22. addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //Broadcast lokalny
  23. addr.sin_port = htons(1111); //Port na ktorym serwer nasluchuje
  24. addr.sin_family = AF_INET; //IPv4 Socket
  25.  
  26. SOCKET sListen = socket(AF_INET, SOCK_STREAM, NULL); //Tworzenie socketa do nasluchiwania nowego polacenia
  27. bind(sListen, (SOCKADDR*)&addr, sizeof(addr)); //Zwiaz adres z socketem
  28. listen(sListen, SOMAXCONN); //Zmienia stan socketu sListen na nasluchiwanie nadchodzacego polaczenia
  29.  
  30. SOCKET newConnection; //Socket do trzymania polaczenia klienta
  31. newConnection = accept(sListen, (SOCKADDR*)&addr, &addrlen); //Zaakceptuj nowe polaczenie
  32. if (newConnection == 0) { //Jezeli akceptowanie polaczenia klienta nie powiodlo sie
  33. std::cout << "Nie udalo sie akceptowac polaczenia klienta." << std::endl;
  34. }
  35. else { //Jezeli polaczenie klienta zostalo poprawnie zaakceptowane
  36. std::cout << "Polaczono z klientem" << std::endl;
  37. while (1) {
  38. char msg[256] = "Podaj wartosc L (0, aby zakonczyc): "; //Utworzenie buforu z wiadomoscia
  39. int L;
  40. send(newConnection, msg, sizeof(msg), NULL); //Wysylanie buforu msg
  41. recv(newConnection, (char*)&L, sizeof(L), NULL);
  42. if (L == 0){
  43. std::cout << "Klient rozlaczyl sie\n";
  44. shutdown(newConnection, 2);
  45. break;
  46. }
  47. else {
  48. std::cout << "Odebrano wartosc: " << L << std::endl;
  49. double L_pow = L * L;
  50. send(newConnection, (char*)&L_pow, sizeof(L_pow), NULL);
  51. }
  52. }
  53. }
  54. //WSACleanup();
  55. //closesocket(newConnection);
  56.  
  57.  
  58. system("PAUSE");
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement