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); //STDIN_FILENO is 0
- select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
- return FD_ISSET(STDIN_FILENO, &fds);
- }
- int main(int argc, char **argv) {
- //UDP
- /*int l = 10;
- char c[l];
- UDP::sendTo("127.0.0.1", 9995, "quit");
- bool b = UDP::receiveFrom(9999, c, 10);
- std::cout << std::boolalpha << b << " " << c << std::endl;*/
- 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){
- //while(socket.getNbConnected() < 2) std::this_thread::sleep_for(std::chrono::milliseconds(1));
- /*while(true){
- std::string msg = socket.receive(), name = socket.getName();
- if(msg != "" || name != "") std::cout << "from:" << name << " (" << msg.size() << "): " << msg << std::endl;
- }*/
- 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;
- }
|