Advertisement
informaticage

winsock1

Oct 15th, 2014
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. #include <winsock2.h>
  4. #include <iostream>
  5. #pragma comment(lib,"ws2_32.lib")
  6. #pragma comment(lib,"odc32.lib")
  7. #pragma comment(lib,"odccp32.lib")
  8.  
  9. using namespace std;
  10.  
  11. int main (void){
  12.     int error; //Intero error per verificare il funzionamento del winsock
  13.     int SSocket;
  14.     WSAData wsaData; //Informazioni sul network
  15.     error = WSAStartup(MAKEWORD(2, 2), &wsaData);
  16.     if (error == SOCKET_ERROR)
  17.         return 1; // in caso di errore usciamo con valore 1
  18.     cout << endl << "Winsock server e' partito " << endl; // tutto ok!
  19.     SSocket = socket(AF_INET, SOCK_STREAM, 0); //AF_INTET significa che verrà utilizzato per internet, SOCK_STREAM connessione (straming)
  20.     if (SSocket == SOCKET_ERROR)
  21.         cout << "Socket error! (2)" << endl;
  22.     else
  23.         cout << "Socket server working..." << endl;
  24.     struct sockaddr_in server;
  25.     server.sin_family = AF_INET; //sempre per internet
  26.     server.sin_port = htons(7654); //porta con htons diventa di rete e non intera
  27.     server.sin_addr.s_addr = INADDR_ANY;
  28.     error = bind(SSocket, (sockaddr*)&server, sizeof(server)); //Tentativo di bindare il server
  29.     if (error == SOCKET_ERROR)
  30.         cout << "Impossibile bindare il server! " << endl;
  31.     error = listen(SSocket, 5);
  32.     if (error == SOCKET_ERROR)
  33.         cout << "Errore in ascolto! " << endl;
  34.     cout << "Se non sono stati stampati errori sono in listening (in attesa) ..." << endl;
  35.    
  36.     /*lavoriamo su ciò che ci invia il client*/
  37.     int clientSocket;
  38.     clientSocket = accept(SSocket, 0, 0);
  39.     if (clientSocket == SOCKET_ERROR)  
  40.         cout << "errore nel client! " << endl;
  41.     else
  42.         cout << "Client Connesso!" << endl;
  43.     closesocket(SSocket);
  44.     cout << "Sever chiuso! " << endl;
  45.     /******************************Chiusura**********************************************/
  46.     WSACleanup();
  47.     cout << "Winsock terminato! " << endl;
  48.     cout << "Premi INVIO per terminare il server! ";
  49.     cin.get();
  50.     cin.get();
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement