Advertisement
Guest User

Mon système de chat (sockets)

a guest
Feb 12th, 2016
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. SERVEUR
  2.  
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <winsock2.h>
  7. #include <pthread.h>
  8. #include "bibliolol.h"
  9.  
  10. int main (void)
  11. {
  12. WSADATA WSAData;
  13. WSAStartup(MAKEWORD(2,2), &WSAData);
  14. printf("ouverture de la bibliothèque sockets\n");
  15. SOCKET Masock;
  16. SOCKADDR_IN Monaddresse;
  17. SOCKET clientsock;
  18. SOCKADDR_IN clientaddresse;
  19. char message[200] = "Connexion etablie !!!";
  20. char cmessage[200]="";
  21. int taille=sizeof(Monaddresse);
  22. int tailleclient = sizeof(clientaddresse);
  23. int erreur=0;
  24. int i=1;
  25.  
  26. Masock = socket(AF_INET, SOCK_STREAM, 0);
  27. if(Masock != INVALID_SOCKET)
  28. {
  29. printf("La socket %d est maintenant ouverte en mode TCP/IP\n", Masock);
  30. printf("configuration de la socket\n");
  31. Monaddresse.sin_addr.s_addr = htonl(INADDR_ANY);
  32. Monaddresse.sin_family = AF_INET;
  33. Monaddresse.sin_port = htons(23);
  34. erreur= bind(Masock, (SOCKADDR*)&Monaddresse,taille);
  35.  
  36. if(erreur!= SOCKET_ERROR)
  37. {
  38.  
  39. erreur= listen(Masock, 5);
  40. if(erreur!= SOCKET_ERROR)
  41. {
  42.  
  43. printf("Attendez que quelqu'un se connecte !\n");
  44. clientsock = accept(Masock, (SOCKADDR*)&clientaddresse, &tailleclient);
  45. printf("Quelqu'un s'est connecté !!\n\n");
  46.  
  47.  
  48. if(erreur!= SOCKET_ERROR)
  49. {
  50. while(i)
  51. {
  52.  
  53.  
  54. send(clientsock, message, 200, 0);
  55. printf("Chaine envoyee : %s\n\n", message);
  56.  
  57. lire(message,200);
  58. if(recv(Masock, cmessage, 200, 0) != SOCKET_ERROR)
  59. {
  60. printf("Recu : %s \n",cmessage);
  61. }
  62.  
  63. else
  64. {
  65. printf("rien de recu\n");
  66. }
  67. }
  68.  
  69. }
  70. else
  71. {
  72. printf("Erreur de transmission\n");
  73. }
  74. shutdown(clientsock, 2);
  75. }
  76. closesocket(Masock);
  77. }
  78. }
  79. WSACleanup();
  80. return 0;
  81. }
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99. CLIENT
  100.  
  101. #include <winsock2.h>
  102. #include <stdio.h>
  103. #include <stdlib.h>
  104. #define PORT 23
  105. #include <string.h>
  106. #include "bibliolol.h"
  107.  
  108. int main(void)
  109. {
  110. WSADATA WSAData;
  111. int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
  112.  
  113. int i=1;
  114. SOCKET serversock;
  115. SOCKADDR_IN serveraddr;
  116. SOCKET sock;
  117. SOCKADDR_IN sin;
  118. char buffer[200] = "";
  119. char message[200]="connexion etablie avec le serveur";
  120.  
  121. if(!erreur)
  122. {
  123. sock = socket(AF_INET, SOCK_STREAM, 0);
  124.  
  125. sin.sin_addr.s_addr = inet_addr("127.0.0.1");
  126. sin.sin_family = AF_INET;
  127. sin.sin_port = htons(PORT);
  128.  
  129. if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR)
  130. {
  131. printf("Connection a %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
  132.  
  133. while(i)
  134. {
  135. if(recv(sock, buffer, 200, 0) != SOCKET_ERROR)
  136. {
  137. printf("Recu : %s \n", buffer);
  138. }
  139. printf("Chaine envoyee : %s\n\n", message);
  140.  
  141. erreur= send(sock, message, 200, 0);
  142. if(erreur)
  143. {
  144. printf("NOMBRE D OCTET ENVOYES: %d\n",erreur);
  145. }
  146.  
  147.  
  148. lire(message,200);
  149. }
  150. }
  151. else
  152. {
  153. printf("Impossible de se connecter\n");
  154. }
  155.  
  156.  
  157. shutdown(serversock, 2);
  158. closesocket(sock);
  159.  
  160.  
  161. WSACleanup();
  162.  
  163. }
  164.  
  165.  
  166. getchar();
  167.  
  168. return EXIT_SUCCESS;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement