captainIBM

socket client

Dec 23rd, 2017
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #if defined (WIN32)
  2. #include <winsock2.h>
  3. typedef int socklen_t;
  4. #elif defined (linux)
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <netinet/in.h>
  8. #include <arpa/inet.h>
  9. #include <unistd.h>
  10. #define INVALID_SOCKET -1
  11. #define SOCKET_ERROR -1
  12. #define closesocket(s) close(s)
  13. typedef int SOCKET;
  14. typedef struct sockaddr_in SOCKADDR_IN;
  15. typedef struct sockaddr SOCKADDR;
  16. #endif
  17.  
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #define PORT 23
  21.  
  22.  
  23.  
  24. int main(void)
  25. {
  26. #if defined (WIN32)
  27. WSADATA WSAData;
  28. int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
  29. #else
  30. int erreur = 0;
  31. #endif
  32.  
  33. SOCKET sock;
  34. SOCKADDR_IN sin;
  35.  
  36. if(!erreur)
  37. {
  38. /* Création de la socket */
  39. sock = socket(AF_INET, SOCK_STREAM, 0);
  40.  
  41. /* Configuration de la connexion */
  42. sin.sin_addr.s_addr = inet_addr("127.0.0.1");
  43. sin.sin_family = AF_INET;
  44. sin.sin_port = htons(PORT);
  45.  
  46. /* Si le client arrive à se connecter */
  47. if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR){
  48. printf("Connexion à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
  49. system("PAUSE");
  50. }
  51. else
  52. printf("Impossible de se connecter\n");
  53.  
  54. /* On ferme la socket précédemment ouverte */
  55. closesocket(sock);
  56.  
  57. #if defined (WIN32)
  58. WSACleanup();
  59. #endif
  60. }
  61.  
  62. return EXIT_SUCCESS;
  63. }
Add Comment
Please, Sign In to add comment