salve a tutti mi servirebbe un aiuto per la programmazione di un programmino che mi è stato dato per un progetto di informatica.
il programmino è per una connessione socket in cui lanciandolo aspetta fino a che non riceve un pacchetto di dati.
questo pacchetto è settato a un byte.
ora per il mio progetto dovrei rielaborarlo da un byte a due byte che mi servono.
posso semplicemente sostituire i valori del programma o devo cambiare altro??
grazie mille per l'aiuto
codice:
// Exampole.cpp : Defines the entry point for the console application. 

#include <stdio.h> 
#include <stdlib.h> 
#include <iostream> 
#include <fstream> 
#include <map> 
#include <utility> // make_pair 
#include <string> 
#include <winsock2.h> 
#include <string.h> 
using namespace std; 

#define FLASH 

#define WAIT 0 
#define GO 1 
#define STOP 2 
#define QUIT 3 
#define DISCONNECT 4 
#define CONNECT 5 

int count = 0; 
int state = WAIT; 
char buf[128]; 

DWORD WINAPI ThreadProc(LPVOID lpParameter){ 
   SOCKET* client; 
   int n; 
   client = (SOCKET *)lpParameter; 
   while(1){ 
      n = recv(*client,buf,1,0); 
      if(n <= 0){ 
         state = QUIT; 
         return 1; 
      } 
      switch(buf[0]){ 
      case 'I': 
         state = GO; 
         break; 
      case 'S' : 
         state = STOP; 
         break; 
      case 'Q' : 
         state = QUIT; 
         break; 
      case 'D' : 
         state = DISCONNECT; 
         break; 
      case 'C' : 
         state = CONNECT; 
         break; 
      default: 
         break; 
      } 
      printf("State is: %d",state); 
   } 
   return 1; 
} 


int main(int argc, char* argv[]) 
{ 
   /* 
   GESTIONE SOCKET 
   */ 

   WSADATA data_ws; // inizializzo la variabile che contiene le primitive di Winsock 
   WORD p; 
   int lun; 
   SOCKET sock, sock_client; 
   struct sockaddr_in sock_addr, sock_addr_client; 
   int n; 
   HANDLE h; 

   int err=0; // inizializzo una variabile per gestire gli errori 
   unsigned char ip[4]; 

   ip[0] = 127; 
   ip[1] = 0; 
   ip[2] = 0; 
   ip[3] = 1; 

   DWORD id1; 



   p=MAKEWORD(2,0); // creo la variabile p che contiene la versione della wsock32.dll 
   err=WSAStartup(p,&data_ws); // inizializzo la wsock32.dll verificandone la mancanza di errori 

   sock=socket(PF_INET,SOCK_STREAM,0); 
   sock_addr.sin_family=PF_INET; // indico il protocollo utilizzato (TCP/IP) 

   sock_addr.sin_port=htons(63000); //indico la porta a cui connettere il socket 
   sock_addr.sin_addr.S_un.S_un_b.s_b1=ip[0]; // indico l'indirizzo IP 
   sock_addr.sin_addr.S_un.S_un_b.s_b2=ip[1]; 
   sock_addr.sin_addr.S_un.S_un_b.s_b3=ip[2]; 
   sock_addr.sin_addr.S_un.S_un_b.s_b4=ip[3]; 

   err=bind(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr)); 
   err=listen(sock,1); 

   lun = sizeof(struct sockaddr_in); 
   //rimango in attesa della connessione da parte di un process... 
   sock_client = accept(sock,(struct sockaddr*)&sock_addr_client,&lun); 

   //avvio il processo di lettura 
   if( (h=CreateThread(NULL,0,ThreadProc,&sock_client,0,&id1)) == NULL ) 
      return FALSE; 
   //avvio il processo di inventory... 
   printf("Connession Accettata\n"); 
   while(state!=QUIT){ 

      if(state == CONNECT){ 
         printf("Connected..\n"); 
      } 

      if(state == GO) 
      { 
         printf("State GO\n"); 
         Sleep(1000); 
      } 

      if(state == STOP){ 
         state = WAIT; 
      } 
      if(state == WAIT){ 
         printf("State Wait\n"); 
         Sleep(100); 
      } 

      if(state == DISCONNECT){ 
         state = WAIT; 
         buf[0] = 'O'; 
         buf[1] = 'K'; 
         send(sock_client,buf,2,0); 
      } 
   } 

   WaitForSingleObject(h,50); 

   closesocket(sock_client); 
   closesocket(sock); 

   Sleep(100); 
   printf("Termine Programma\n"); 
   WSACleanup(); 
   return 0; 
}