Skip to content

KirillHit/simple_socket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleSocket

C++ библиотека неблокирующих сокетов (UDP/TCP) для Windows и Linux. Проектировалась для решения задач телеуправления и предполагает постоянное соединение двух устройств для передачи данных. Устойчива к разрывам соединения. Примеры использования: udp_streamer, youbot_rc.

Demo

В папке «demo» содержатся примеры кода сервера и клиента (UDP и TCP).

Сборка и запуск:

mkdir build
cd build
cmake -DDemo:=ON ..
cmake --build .
cd demo
# First terminal
.\tcp_server
# second terminal
.\tcp_client

Examples

// TCP server
#include "simple_socket/simple_socket.hpp"

int main()
{
    sockets::TCPServer server;
    server.set_socket("127.0.0.1", 10000);
    server.set_keepalive(1, 1, 1);
    server.set_timeout(500);
    server.socket_bind();

    server.receive(reinterpret_cast<char *>(&rx_msg), MSG_SIZE);
    server.send_mes(reinterpret_cast<char *>(&tx_msg), MSG_SIZE);
    
    return 0;
}
// TCP client
#include "simple_socket/simple_socket.hpp"

int main()
{
    sockets::TCPClient client;
    client.set_socket("127.0.0.1", 10000);

    client.send_mes(reinterpret_cast<char *>(&tx_msg), MSG_SIZE);
    client.receive(reinterpret_cast<char *>(&rx_msg), MSG_SIZE);
    
    return 0;
}