bonjour,
jessaye de faire un jeu qui peu se jouera 2 en reseau local.
je ne connais absolument rien en reso, mais en fouillant sur le net, jai trouver en gros comment faire et jessaye de mettre la chose sur pied en faisant des test.

le probleme c'est que la methode que jutilise ralenti grandement le jeu, il parait quil faut que j'utilise un thread mais je ne sais pas comment faire.

pour linstant, j'ai un programe serveur, qui envoi un caractere a chaque tour, a la fontion client de mon jeu

comment modifier les code pour que ça ne ralentisse plus le jeu??
et aussi , comment transmettre autre chose que des caracteres??(comme un tablo de float par exemple)

merci davance

voici mes codes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
//PROGRAMME SERVEUR
#include <winsock.h>
#include <iostream.h>
#include <windows.h>
DWORD dwEventFlags;
DWORD dwData;
 
int main()
{
const SHORT Mask = 32768;
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(50);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
int sinsize = sizeof(csin);
 
  while(!((csock = accept(sock,(SOCKADDR *)&csin,&sinsize)) != INVALID_SOCKET))
  {}
   cout << "\nIl y a un client\n";
   while(true){   
            if (GetKeyState('K') & Mask)send(csock,"a",1,0);
            else if (GetKeyState('L') & Mask)send(csock,"b",1,0);
            else send(csock,"c",1,0);
          }
closesocket(sock);
WSACleanup();
}
 
 
 
// FONCTION CLIENT(utilisé par mon jeu)
#include <stdio.h>
#include <iostream.h>
#include <winsock.h>
#include <windows.h>
SOCKET sock;
int res;
char buffer[1024];
int hh;
 
int con(int a){
if(!a){
 
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);
 
sock = socket(AF_INET,SOCK_STREAM,0); 
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("192.168.1.1");
sin.sin_family      = AF_INET;
sin.sin_port        = htons(50);
connect(sock,(SOCKADDR *)&sin,sizeof(sin));
}
 
else{
     recv(sock,buffer,sizeof(buffer),0);
     res=0;
     if (buffer[0]=='a')res=1;
     if (buffer[0]=='b')res=-1;
     }
  return res;
}