summaryrefslogtreecommitdiff
path: root/i/simulotron/src/socket/test_socket.cc
diff options
context:
space:
mode:
authorhaller2005-11-29 01:58:16 +0000
committerhaller2005-11-29 01:58:16 +0000
commit8020ef753b8d434c026299650fe911d71d844e78 (patch)
treec8ba23fd3d95cbd12067d2437d678f50c196442b /i/simulotron/src/socket/test_socket.cc
parent1c63701ecc8a1cff6979bdb3688cf62f4cc267f5 (diff)
Modification dans l'A/A
Codage du test de socket(qui foire)
Diffstat (limited to 'i/simulotron/src/socket/test_socket.cc')
-rw-r--r--i/simulotron/src/socket/test_socket.cc69
1 files changed, 69 insertions, 0 deletions
diff --git a/i/simulotron/src/socket/test_socket.cc b/i/simulotron/src/socket/test_socket.cc
index 2992206..67ff638 100644
--- a/i/simulotron/src/socket/test_socket.cc
+++ b/i/simulotron/src/socket/test_socket.cc
@@ -1,5 +1,74 @@
+#include "socket/socket.hh"
+#include "socket/address.hh"
+
+#include <iostream>
int main(void)
{
+ Address adr;
+ Address adr2;
+ // Création de deux socket;
+ Socket sockServ(Address(4242));
+ Socket sockClient(adr);
+
+ // Mise en écoute du socket serveur
+ sockServ.listen(12);
+
+ // Demande de connection
+ sockClient.connect(Address(std::string("localhost"), 4242));
+ Socket sockFork = sockServ.accept(adr2);
+ //TODO if(adr != adr2)
+ //{
+// std::cout << "L'adresse du client et l'adresse retourné par le accept sont différentes !!!" << std:endl;
+// return 1;
+ // }
+
+ // Ecriture du client dans le serveur
+ std::string strDepart = "J'aime la prog système.";
+ std::string strDest;
+
+ sockClient.write(strDepart);
+ strDest = sockFork.read();
+
+ if(strDepart != strDest)
+ {
+ std::cout << "CHIER!! Le message d'origine est altéré en ecrivant du client au serveur!!" << std::endl;
+ return 1;
+ }
+
+ // Ecriture du serveur au client
+ sockFork.write(strDepart);
+ strDest = sockClient.read();
+
+ if(strDepart != strDest)
+ {
+ std::cout << "CHIER!! Le message d'origine est altéré en ecrivant du serveur au client!!" << std::endl;
+ return 1;
+ }
+
+ // Ecriture d'un char du client au serveur
+ char a = 'f';
+ char b;
+
+ sockClient.putChar(a);
+ b = sockFork.getChar();
+
+ if(a != b)
+ {
+ std::cout << "CHIER!! Le char d'origine est altéré en ecrivant du client au serveur!!" << std::endl;
+ return 1;
+ }
+
+ // Ecriture du serveur vers le client
+ sockFork.putChar(a);
+ b = sockClient.getChar();
+
+ if(a != b)
+ {
+ std::cout << "CHIER!! Le char d'origine est altéré en ecrivant du serveur au client!!" << std::endl;
+ return 1;
+ }
+
+
return 0;
}