Estratto del documento

#include <stdio.h>

//#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

#include <winsock.h> //Linkare con l'opzione -lwsock32

#include <windows.h> //Per usare la Sleep

#define PORT 6644

#define BENVENUTO "Benvenuti nel gioco del MasterMind buon divertimento e in

bocca al lupo....\0"

#define VITTORIA "Complimenti hai vinto !!XD\nTempo impiegato (secondi): \0"

#define SCONFITTA "Complimenti hai PERSO !!XD\nLa soluzione era: \0"

#define NON_VALIDO "Tentativo non valido, ritenta\0"

#define MAX_STRING 256

void server();

void error(char *);

int InitializeWinsock(WORD );

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

if (!InitializeWinsock (MAKEWORD(1,1) ) ) return 1;

server();

WSACleanup();

return 0;

}

void server () {

SOCKET fd, fd_new; // "file" descriptors for the network sockets

SOCKADDR_IN saddr_me;

char buf[MAX_STRING];

if ((fd=socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET)

error("Server: socket not connected ");

saddr_me.sin_family = AF_INET;

saddr_me.sin_addr.s_addr= htonl(INADDR_ANY);

saddr_me.sin_port = htons(PORT);

if (bind(fd, (LPSOCKADDR) &saddr_me, sizeof(saddr_me)) == SOCKET_ERROR)

error("Server: bind failure ");

if (listen(fd,1) == SOCKET_ERROR)

error("Server: listen failure ");

printf("\nServer in azione\n");

if ( (fd_new=accept(fd, NULL, NULL)) == INVALID_SOCKET)

error("Server: accept failure ");

// In Windows i sockets non sono dei normali file descriptors, quindi

// non possono essere usate le normali primitive "read" e "write"

printf("\nConnessione al client riuscita\n");

// genera numeri casuali

srand((unsigned)time(NULL));

char vitt[5];

int tent=0;

for (int i=0;i<4;i++) {

// Inizializzo vett[] ha 49 numero ASCII che equivale a 1 cosi facendo

genera numeri random fino a 9

vitt[i]=49+rand()%9;

for (int j=0;j<i;j++) {

if (vitt[i]==vitt[j]) {

i--;

break;

}

}

}

vitt[4]='\0';

// Invia mex di benvenuto.

if ( send(fd_new,BENVENUTO, strlen(BENVENUTO)+1, 0) == SOCKET_ERROR )

error("Server: sending failure ");

// clock t tipo dichiarato in time.h

clock_t start,end;

start=clock();

while (1) {

char msg1[]="Tentativo numero: \0\0\0";

char num[3];

// tent variabile x il incremento dei tentativi la itoa serve x la

conversione da int a stringa

tent++;

itoa(tent,num,10);

// strcat serve x la concatenazione di due stringhe

strcat(msg1,num);

Sleep(1000);

Anteprima
Vedrai una selezione di 1 pagina su 5
Programma server del gioco del misterMind Pag. 1
1 su 5
Sintesi

Parte server del gioco del Mastermind

Permette di giocare al Mastermind se si aggiunge un client! Ottimo esempio fatto con C++ in Borland.

D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi