123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #include <iostream>
- #include <cstdlib>
- #include "Network.h"
- int kbhit()
- {
- struct timeval tv;
- fd_set fds;
- tv.tv_sec = 0;
- tv.tv_usec = 0;
- FD_ZERO(&fds);
- FD_SET(STDIN_FILENO, &fds);
- select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
- return FD_ISSET(STDIN_FILENO, &fds);
- }
- int main(int argc, char **argv) {
-
-
- srand(time(0));
- if(argc > 1){
- TCPClient socket;
- std::string name = std::string(argv[1]), msg;
- bool connected = socket.connect("127.0.0.1", 9995, name);
- std::cout << "connection established: " << std::boolalpha << connected << std::endl;
- while(socket.isConnected()){
- if(kbhit()){
- std::getline(std::cin, msg);
- socket.send({msg});
- }
- msg = (std::string)socket.receive();
- if(msg != "") std::cout << "serveur: " << msg << std::endl;
- }
- }else{
- int n = 2;
- TCPServer socket(9995, n, true);
- bool hosting = socket.host();
- std::cout << "host: " << std::boolalpha << hosting << std::endl;
- if(hosting){
-
-
- bool stop = false;
- std::string msg;
- do{
- std::this_thread::sleep_for(std::chrono::milliseconds(1));
- if(kbhit()){
- std::getline(std::cin, msg);
- for(int i = 0;i<socket.getNbConnected();i++) socket[i].send({msg});
- }
- for(auto name : socket.namesList()){
- msg = (std::string)socket(name).receive();
- if(msg != "") std::cout << name << ": " << msg << std::endl;
- if(msg == "stop") stop = true;
- }
- }while(!stop);
- }
- }
- return 0;
- }
|