[Cruce-commit] SF.net SVN: cruce:[59] C/trunk/server
Status: Beta
Brought to you by:
caiusb
|
From: <ali...@us...> - 2010-03-23 01:19:05
|
Revision: 59
http://cruce.svn.sourceforge.net/cruce/?rev=59&view=rev
Author: alinposho
Date: 2010-03-23 01:18:59 +0000 (Tue, 23 Mar 2010)
Log Message:
-----------
Functioneaza partea de accept cards si bid atat pentru server cat si pentru
client.
Modified Paths:
--------------
C/trunk/server/gameLogic.c
C/trunk/server/server.c
Modified: C/trunk/server/gameLogic.c
===================================================================
--- C/trunk/server/gameLogic.c 2010-03-23 00:42:10 UTC (rev 58)
+++ C/trunk/server/gameLogic.c 2010-03-23 01:18:59 UTC (rev 59)
@@ -206,15 +206,18 @@
string_carti[strlen(string_carti)] = '\0';
strcat(string_carti, " ");
}
+
printf("%s\n", string_carti);
sendMessage(echipe[i].jucatori[j].sfd, SEND_CARDS, string_carti);
//verificam daca jucatorul a acceptat cartile trimise
- int expecttedMessage[] =
- { ACK, NACK };
+ int expecttedMessage[] = { ACK, NACK };
+
char info[MSG_SIZE];
struct jucator expected_Sender[] = {echipe[i].jucatori[j]};
- code = getMSG(expected_Sender, expecttedMessage, info,
- NULL);
+
+ //Asteptam sa receptionam un mesaj OK de la jucatorul tinta
+ while((code = getMSG(expected_Sender, expecttedMessage, info, NULL))== -1);
+
if (ACK == code)
{
char buff[100];
@@ -230,7 +233,7 @@
sprintf(buff, "Jucatorul: %s NU a acceptat cartile\n",
echipe[i].jucatori[j].nume);
displayInfoMessage(stdout, buff);
- //TO DO implemetarea acestei situatii
+ //TO DO implemetarea acestei situatii adica verificarea refuzului
}
else
{
@@ -239,7 +242,8 @@
"Nu s-a recepionat niciun mesaj sau a fost receptionat un mesaj de la cine nu trebuia!\n");
}
}
- } while (ACK != code);
+ }
+ while (ACK != code);
}
displayInfoMessage(stdout, "\n***Cartile au fost impartite.***\n");
Modified: C/trunk/server/server.c
===================================================================
--- C/trunk/server/server.c 2010-03-23 00:42:10 UTC (rev 58)
+++ C/trunk/server/server.c 2010-03-23 01:18:59 UTC (rev 59)
@@ -266,10 +266,17 @@
/* TODO */
/** Ia un mesaj din retea si vede ce e cu el **/
-/* expected reprezinta un vector de int care specifica ce mesaje se
- * se asteapta sa vina. Daca nu vine un mesaj
- * "expected" atunci se returneaza -1.
- * In cazul in care nu se receptioneaza niciun mesaj se returneaza -1
+/* **expected reprezinta un vector de int care specifica ce mesaje se
+ * se asteapta sa vina.
+ * **Jucator este un pointer dar NU este un array. El poate reprezenta un singur jucator daca are valoare sau
+ * toti jucatorii daca este NULL
+ *
+ * **Daca se receptioneza mesaje de la mai multi jucatori printre care si de la jucatorul tinta celelalte sunt ignorate
+ * **Daca nu se receptioneaza mesaje de la jucatorul tinta, atunci toate celelalte mesaje sunt interceptate(se trimite NACK)
+ * iar la final se returneaza -1
+ *
+ * **In cazul in care se receptioneaza mai multe mesaje
+ * **In cazul in care nu se receptioneaza niciun mesaj se returneaza -1
* Daca vine un mesaj expected se returneaza codul mesajului
* Daca expected este NULL atunci se iau in considerare toate mesajele
*
@@ -308,7 +315,12 @@
{
//trimitem NACK pentru mesajul ilegal
int fileDescriptor = getFirst_fd_set(set);
- sendMessage(fileDescriptor, NACK, "Ai trimis un mesaj ilegal!\n");
+ while(fileDescriptor != -1)
+ {
+ sendMessage(fileDescriptor, NACK, "Ai trimis un mesaj ilegal!\n");
+ }
+ //Am receptionat mesaje de la cine nu trebuia
+ return -1;
}
else
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|