0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 19
1

Чат p2p TCP только логика?

04.12.2015, 20:37. Показов 4754. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте подскажите пожалуйста логику написания p2p клиента который будет связываться с таким же клиентом принимать и передавать ему сообщения одновременно? Я думаю в направлении двухпоточного приложения один поток слушает, другой передает, или это можно сделать без многопоточности? оба потока должны слушать один порт и передавать на него же или как?? желательно без интерфейса конечно , но тут возникает проблема одновременного доступа к консоли, конечно можно использовать критическую секцию, но не будет ли из-за нее тормозить одновременный ввод/вывод.

По сути: Написание p2p чата, одно приложение запускаем 2 раза, то есть по сути 2 клиента, и они между собой общаются как лучше реализовать, по возможности опишите пообширнее пожалуйста???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2015, 20:37
Ответы с готовыми решениями:

TCP чат работает только локально
есть 2 части клиент/сервер, если сервер стоит на другой машине не могу приконектится к нему,...

P2P видео чат
Доброго времени суток форумчане! Помогите молодому еще студенту написать видео чат на P2P(с...

P2P чат с использованием STUN
Здравствуйте, хочу написать чат между двумя пользователями в интернете с помощью серверов STUN....

P2p чат, что лучше? на чем?
Здравствуйте, на каком языке вы бы предпочли писать чистый (те без управляющего сервера) p2p чат, и...

4
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
10.12.2015, 08:16 2
sandanen, интересно как это два клиента друг друга увидят ? Тебе мастер-сервер нужен будет.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
10.12.2015, 16:36 3
Цитата Сообщение от sandanen Посмотреть сообщение
другой передает, или это можно сделать без многопоточности?
Да можно, это называется мультеплексированный ввод - вывод
Цитата Сообщение от sandanen Посмотреть сообщение
оба потока должны слушать один порт и передавать на него же или как??
можно в одном, чтобы передавать нужна активность на запись, если передавать данные из консоли то активность на запись можно не проверять, данные всегда буду успевать уходить быстрее чем вы их отправляете, а такж е слушать сокет на чтение/, появилась активность - читаете
Цитата Сообщение от sandanen Посмотреть сообщение
но тут возникает проблема одновременного доступа к консоли, конечно можно использовать критическую секцию, но не будет ли из-за нее тормозить одновременный ввод/вывод.
возможно есть смысле сделать таким образом, что когда вводите данные не писать в консоль вывод(сохранять данные в буфере), как только ввод закончили, записать в вывод

Добавлено через 1 минуту
Цитата Сообщение от sandanen Посмотреть сообщение
они между собой общаются как лучше реализовать, по возможности опишите пообширнее пожалуйста???
самый простой варинат я думаю такой, запускаете приложение, и пытаетесь приконекктится к какому то IP:порт, не получилось, сами становитесь сервером, т.е делаете listen, и по активности на сокете accept нового соединения
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 14:47 4
Интересно как клиенты будут видеть друг друга, если у 99% клиентов будут простые IP, а не белые. Скорее всего они не увидят друг друга, только если они будут в одной сети.
0
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
27.12.2015, 02:56 5
Они увидят друг друга, если будут находиться за Full Cone NAT со статическим IP ната.
Настоятельно рекомендую UDP, и проще и быстрее и гибче. Ну не гарантирует соединение, ну сделайте таймаут, это проще чем вникать в механику TCP, на UDP торрент сделали, чем Ваш чат хуже).
0
27.12.2015, 02:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 02:56
Помогаю со студенческими работами здесь

WCF-чат логика получения сообщений
Всего пару недель как познакомился с WCF. На работе попросили создать чат (аналог ICQ), для клиента...

TCP чат
добрый день, решил написать онлайн чат. все вроде бы сделал, но в ходе работы вылазиют непонятные...

TCP-Чат
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Чат на tcp/ip
Хочу написать чат на tcp/ip. Но не могу додуматься как реализовать чисто логически кое-какие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru