Ce code permet une discussion entre la personne possédant le serveur et celle possédant le client.
Source / Exemple :
//------------------------------partie serveur
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
#include <string.h>
int main()
{
char buffer[255];
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(4444);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
memset(buffer,0,255);
wsprintf(buffer,"Serveur connecte :-) tu peux parler\n");
send(csock,buffer,255,0);
}
while(1)
{
{
memset(buffer, '\0', sizeof(buffer));
recv(csock, buffer, sizeof(buffer), 0);
Beep(400,150);
printf("%s\n",buffer);
}
{
char chaine[1000];
fflush(stdout);
printf("shown dit :");
if (read(0, chaine, 1000)) {
sprintf (buffer, "shown dit :%s\n", chaine);
send (csock, buffer, strlen (buffer), 0);}
}
}
}
//------------------------------partie client
#include <stdio.h> // printf
#include <conio.h> // getch()
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
#include <string.h>
int main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char buffer[255];
char *ptr;
char msg[256];
sock = socket(AF_INET, SOCK_STREAM, 0);
/*remplacer l'ip par celle de la machine possédant le serveur*/
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
/*--------------------------------------------------------------------------*/
sin.sin_family = AF_INET;
sin.sin_port = htons(4444);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
while(1)
{
{
memset(buffer, '\0', sizeof(buffer));
recv(sock, buffer, sizeof(buffer), 0);
Beep(400,150);
printf("%s\n",buffer);
}
{
char chaine[1000];
fflush(stdout);
printf("Odji dit :");
if (read(0, chaine, 1000)) {
sprintf (buffer, "Odji dit :%s\n", chaine);
send (sock, buffer, strlen (buffer), 0);}
}
}
}
Conclusion :
Ce code fonctionne avec Dev-C++ malgré des imperfections en particulier
du coté serveur lors de la reception.
Donc si vous savez comment y remédier faites-le moi savoir ;-)
Ne soyez pas trop méchant je débute en C (à peine 3 petits mois...)