SFML и C++ Уроки \ Разработка игр › Форумы › SFML Network › Пример реализации SFML Network › Ответ в теме: Пример реализации SFML Network
Пример консольного мессенжера. Необходимо скомпилировать два файла .cpp (два приложения) и указать IP-адреса и порты.
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
#include<SFML/Network.hpp> #include<iostream> #include<string> #include<thread> using namespace std; using namespace sf; void Send() //Функция отправитель. { while (true) { //Создать соккет отправителя. UdpSocket socket; char message[250]; Packet packet; cin.getline(message, 250); //Передать массив символов. Получатель увидит готовые строки. packet << message; socket.send(packet, "192.168.43.142", 2001); } } void Receive() //Функция получатель { while (true) { //Создать соккет получателя и привязать его к своему порту. UdpSocket socket; socket.bind(2002); // Получить от кого-нибудь сообщение. IpAddress sender; unsigned short port; string message; Packet packet; socket.receive(packet, sender, port); packet >> message; cout << message << endl; } } //------- Протокол Udp ----------------+ int main() { cout << "Yuriy" << endl; cout << "-----" << endl; thread receive(Receive); thread send(Send); //Вызвать две функции, каждую в отдельном потоке. receive.join(); send.join(); //Ждать окончания работы потоков. size_t z; std::cin >> z; return 0; } /*#include<SFML/Network.hpp> #include<iostream> #include<string> #include<thread> using namespace std; using namespace sf; void Send() //Функция отправитель. { while (true) { //Создать соккет отправителя. TcpSocket socket; //Установить связь с получателем. socket.connect("192.168.43.142", 2001); char message[250]; Packet packet; cin.getline(message, 250); //Передать массив символов. Получатель увидит готовые строки. packet << message; socket.send(packet); packet.clear(); } } void Receive() //Функция получатель { while (true) { //Создать соккет получателя. TcpSocket socket; //Создать соккет слушателя, присвоить ему свой порт и перейти в режим ожидания. TcpListener listener; listener.listen(2002); // Установить связь с абонентом, если он отправил запрос. listener.accept(socket); // Получить сообщение от абонента. string message; Packet packet; socket.receive(packet); packet >> message; cout << message << endl; } } //------- Протокол Tcp ----------------+ int main() { cout << "Vladimir Kuznetcov" << endl; cout << "--------------------" << endl; thread receive(Receive); thread send(Send); receive.join(); send.join(); size_t z; std::cin >> z; return 0; }*/ |