Сводка кода: приложение использует TCP для установления соединения. между двумя сверстниками, позволяя им общаться. Один одноранговый узел прослушивает динамически выбранный свободный порт, а подключающийся одноранговый узел получает порт автоматически, без ручного ввода. Связь осуществляется путем отправки сообщений между двумя подключенными узлами, при этом имена узлов отображаются рядом с каждым сообщением.
Вот фрагмент кода, обрабатывающий соединение и обмен сообщениями между узлами (полный файл прилагается):
Код: Выделить всё
bool establish_connection(int &connection_sock, int listening_sock, const std::string &peer_ip, int peer_port)
{
bool connected = false;
// Attempt to connect to the discovered peer (client mode)
if (!peer_ip.empty() && peer_port > 0)
{
// Create a TCP socket for the connection
connection_sock = socket(AF_INET, SOCK_STREAM, 0);
if (connection_sock == -1)
{
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79058072/issues-with-peer-to-peer-chat-application-peer-name-and-connection-handling[/url]