powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / P2P по UDP
25 сообщений из 27, страница 1 из 2
P2P по UDP
    #38793400
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу похвастаться поделиться результатами. Мозг взорван асинхронностью и ненадежностью UDP, но работает :)

Полгода назад поднимал темы по данному вопросу, самплесы выкладывал, потом пришлось заморозить разработку, сейчас продолжил. вобщем имею альфа-версию почти готовую к испытанию на живых юзерах.

Цель не совсем P2P, а прямое взаимодействие юзеров, после узнавания о друг-друге.
Так в тестах работает:
Каждый юзер слушает какой-то UDP-порт на всех своих интерфейсах. Порт известен, интерфесы тоже, но порт по выбору ОС. Т.е. чистый клиент легко вылазиющий из-за брэндмауэра виндовса. Плюс есть НАТ который может дать другой порт и IP за НАТом неизвестен.
Юзер1 передает через сервер Юзеру2 желание пообщаться. При передаче Юзер1 сообщает свои реальные локальные IP:порт, плюс сервер добавляет IP:порт ната. В обратную сторону Юзер2 сообщает свои локальные IP:порт и сервер добавляет внешние.

Дальше вроде все понятно, но нельзя тупо слать c Юзера1 на IP:порт НАТа Юзера2, не доходит. Надо пробить НАТы.

Для этого оба юзера (зная о друг-друге) начинают трижды пинговать (посылать соответственно оформленные UDP пакеты) с интервоалом 100 мс на все известные адреса другого юзера. Если оба юзера в одной локалке - общаются по локалке, если оба за НАТами - НАТы вырабатывают правила для приема ответов. Главное чтобы оба юзера пинговали одновременно.

Вопрос: в итого юзеры в локалке, однажды соединившись через сервер, начинают обмениваться сообщениями по локалке. Замечательно если у обоих юзеров есть инет. Но без инета они друг-друга никогда не найдут. Пока мысль выкладывать каждым юзером свои списки IP:порт в виде файла в общую расшаренную папку (известную обоим), но тут проблема где будет эта папка, все юзеры равноправны и расшарить папку на одном, значит сделать его главным, что не везде возможно. В идеале все юзеры должны быть равноправны. Может кто-что подскажет как это решить в виндовсе?
...
Рейтинг: 0 / 0
P2P по UDP
    #38793412
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T Вопрос: в итого юзеры в локалке, однажды соединившись через сервер, начинают обмениваться сообщениями по локалке. Замечательно если у обоих юзеров есть инет. Но без инета они друг-друга никогда не найдут. Пока мысль выкладывать каждым юзером свои списки IP:порт в виде файла в общую расшаренную папку (известную обоим), но тут проблема где будет эта папка, все юзеры равноправны и расшарить папку на одном, значит сделать его главным, что не везде возможно. В идеале все юзеры должны быть равноправны. Может кто-что подскажет как это решить в виндовсе?Шарахните широковещательным пакетом.

Дарю мысль - поскольку в одной локалке некоторые пользователи могут иметь выход в интернет, а другие нет, то первых можно сделать ретрансляторами. Типа как раньше было в скайпе.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793427
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

STUN протокол ещё посмотри
...
Рейтинг: 0 / 0
P2P по UDP
    #38793432
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDima T,

STUN протокол ещё посмотриТак он его уже реализовал, насколько я понял.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793433
nolocky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T Вопрос: в итого юзеры в локалке, однажды соединившись через сервер, начинают обмениваться сообщениями по локалке. Замечательно если у обоих юзеров есть инет. Но без инета они друг-друга никогда не найдут. Пока мысль выкладывать каждым юзером свои списки IP:порт в виде файла в общую расшаренную папку (известную обоим), но тут проблема где будет эта папка, все юзеры равноправны и расшарить папку на одном, значит сделать его главным, что не везде возможно. В идеале все юзеры должны быть равноправны. Может кто-что подскажет как это решить в виндовсе?

все что ты описал - есть в libtorrent уже.

в т.ч. обмен UDP трафиком сидя за NAT, без участия сервера.
http://en.wikipedia.org/wiki/Micro_Transport_Protocol

называется NAT traversal using UDP hole punching


torrent - это ведь не про обмен файлами, это про обмен данными в целом
...
Рейтинг: 0 / 0
P2P по UDP
    #38793436
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftИзопропилDima T,

STUN протокол ещё посмотриТак он его уже реализовал, насколько я понял.
не видел упоминания о публичных STUN серверах
...
Рейтинг: 0 / 0
P2P по UDP
    #38793437
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилmiksoftпропущено...
Так он его уже реализовал, насколько я понял.
не видел упоминания о публичных STUN серверахDima TЮзер1 передает через сервер Юзеру2 желание пообщаться. При передаче Юзер1 сообщает свои реальные локальные IP:порт, плюс сервер добавляет IP:порт ната. В обратную сторону Юзер2 сообщает свои локальные IP:порт и сервер добавляет внешние.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793444
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

то что идея повторена - я вижу
...
Рейтинг: 0 / 0
P2P по UDP
    #38793447
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилне видел упоминания о публичных STUN серверахКстати, да, согласен. Задействовать публичные сервера было бы полезно, если предполагается серьезная нагрузка. А для этого придется реализовать STUN по стандарту, а не только по идее :)
...
Рейтинг: 0 / 0
P2P по UDP
    #38793455
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftШарахните широковещательным пакетом.
Склоняюсь к этому. Написал в надежде что есть фича которую я не знаю. Не трояны пишу если что.

miksoftДарю мысль - поскольку в одной локалке некоторые пользователи могут иметь выход в интернет, а другие нет, то первых можно сделать ретрансляторами. Типа как раньше было в скайпе.
как раз проблема в том что некоторые юзеры отрезаны от инета, банально задан явно локальный IP и шлюз не прописан.

PS Всем: не советуйте torent, изучал, это не то, во-первых они на инет нацелены, во-вторых нацелены на параллельное скачивание больших данных (например фильм) с кучи источков. У меня другая задача, утрировано это аська с доставкой сообщения размером до нескольких Мб.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793458
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЗадействовать публичные сервера было бы полезно
Добавлю, мои сервера публичные для моей проги, их несколько в инете, проблема в локалке где у некоторых пользователей инета нет.
Сейчас это сетевая версия, где в расшаренной папке лежит всё (EXE и база), хочу уйти от этого, хочу извне задавать какие рабочие места надо объединять независимо от их расположения и доступа в инет. Вопросы репликации баз решаемы.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793459
nolocky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Следующий "зайчик" будет баном.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793465
nolocky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
впрочем, какой-то один клиент должен работать типо как STUN сервер или быть доступен явно, иначе UDP hole не пробить, ибо какой порт будет выделен натом - неведомо. а клиент за натом его не обнаружит просто так.

тут можно еще присоветовать мультикаст, множество современных раутеров внезапно его поддерживают в рамках IPTV поддержки, и пропускают IGMP трафик подписки через NAT, как минимум внутрь частной сетки за NAT cможет пробиться мультикаст, отправленный извне, если клиент изнутри сделает запрос на присоединение к известной группе.

обмениваться напрямую они скорее всего по мультикасту не смогут, но как минимум пробить UDP дырку смогут в итоге - клиент за натом узнает по мультикасту, на какой UDP порт и адрес слать запрос тому, кто мультикаст трафик шлет ему извне.


впрочем, тыж неосилятор.... что такое мультикаст читать - нафиг надо, верно?
...
Рейтинг: 0 / 0
P2P по UDP
    #38793569
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDima T,

STUN протокол ещё посмотри
посмотрел, мой сервер в принципе это и делает, протокол только самодельный.

miksoftДарю мысль - поскольку в одной локалке некоторые пользователи могут иметь выход в интернет, а другие нет, то первых можно сделать ретрансляторами.
Спасибо, не заценил вчера подарок :) Подумаю в эту сторону. На текущий момент безинетным юзерам в инет не надо, только наладить связь в локалке с другими запущенными копиями проги, но возможность не помешает, вдруг завтра понадобится.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793575
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже нашел решение для виндовса: mailslot может слать широковещательно
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365147(v=vs.85).aspx \\*\mailslot\name Retrieves a client handle to all mailslots with the specified name in the system's primary domain.
Широковещательно слать на свой порт не очень хорошо, т.к. придется всем клиентам висеть на конкретном порту, брандмауэр будет у пользователя разрешение спрашивать, тот может запретить и прога вообще сети не увидит.

Буду mailslot тестить.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793731
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа, mailslot к (конкретному) порту не привязан ...
...
Рейтинг: 0 / 0
P2P по UDP
    #38793747
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TШироковещательно слать на свой порт не очень хорошо, т.к. придется всем клиентам висеть на конкретном порту, брандмауэр будет у пользователя разрешение спрашивать, тот может запретить и прога вообще сети не увидит.Так у вас же это уже реализовано:
Dima TКаждый юзер слушает какой-то UDP-порт на всех своих интерфейсах.
А для отправки широковещательных UDP, насколько я помню, никаких специфических разрешений не надо. По крайней мере, я в это не упирался.
...
Рейтинг: 0 / 0
P2P по UDP
    #38793908
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovТипа, mailslot к (конкретному) порту не привязан ...
Наоборот, типа привязан и разрешен брандмауэром. По большому счету пофиг как оно работает, т.к. микрософтом все уже реализовано и разрешено. Надеюсь.
miksoftDima TШироковещательно слать на свой порт не очень хорошо, т.к. придется всем клиентам висеть на конкретном порту, брандмауэр будет у пользователя разрешение спрашивать, тот может запретить и прога вообще сети не увидит.Так у вас же это уже реализовано:
Dima TКаждый юзер слушает какой-то UDP-порт на всех своих интерфейсах.
А для отправки широковещательных UDP, насколько я помню, никаких специфических разрешений не надо. По крайней мере, я в это не упирался.
Как я понял нельзя широковещательно слать на все порты (я же не знаю порт другого юзера), широковещательность распространяется только на IP адреса, т.е. для широковещательной рассылки надо конкретный порт указать, типа "192.168.0.255:1234", а варианта "192.168.0.255:*" - нет.

PS Не надо ко мне на "вы" обращаться, неприятно. Вроде как принято на "ты"
...
Рейтинг: 0 / 0
P2P по UDP
    #38793975
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TКак я понял нельзя широковещательно слать на все порты (я же не знаю порт другого юзера), широковещательность распространяется только на IP адреса, т.е. для широковещательной рассылки надо конкретный порт указать, типа "192.168.0.255:1234", а варианта "192.168.0.255:*" - нет.А зачем на все порты? Почему не использовать все время один и тот же порт?

Кроме того, можно для сигнальных целей использовать широковещание на более низком уровне. Там вообще такого понятия, как порты, нету. Тогда заодно удастся попасть на те хосты, которые имеют адрес из другой ip-посдети в этом же широковещательном домене сети. Правда, боюсь, чтобы "услышать" такой фрейм, придется интерфейс в promiscuous mode переводить. Но сюда я на практике не совался, могу наврать.


Dima TPS Не надо ко мне на "вы" обращаться, неприятно. Вроде как принято на "ты"Прошу прощения, у меня с этим вечно раздрай...
...
Рейтинг: 0 / 0
P2P по UDP
    #38794111
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНаоборот, типа привязан и разрешен брандмауэромЭто вы напрасно думаете ...
Mailslot - часть SMB и работает оно тогда, когда есть доступ к ресурсам "сети MS".
Степень опасности и уровень рекомендованности сами оцените или разжёвывать?
...
Рейтинг: 0 / 0
P2P по UDP
    #38794248
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftА зачем на все порты? Почему не использовать все время один и тот же порт?
Потому что если написать так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
	SOCKET sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
	sockaddr_in addr_in;
	addr_in.sin_family = AF_INET;
	addr_in.sin_port = htons(12345); // Слушаем порт 12345
	addr_in.sin_addr.s_addr = htonl(INADDR_ANY);
	if(bind(sock, (SOCKADDR *) &addr_in, (socklen_t) sizeof(sockaddr_in)) != 0) {
		printf("bind() error");
	}


виндовс вопрос задает "брандмауэр виндовса заблокировал некоторые возможности этой программы." И если есть админские права, то есть кнопка "Разрешить". Если права пользовательские, то только кнопка "Ок" и предложение позвать админа чтоб разрешил.

Но если писать так
Код: sql
1.
	addr_in.sin_port = htons(0); // Слушаем какой-то порт на выбор виндовса


то никаких вопросов виндовс не задает и открывает порт даже с правами пользователя.

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


miksoftКроме того, можно для сигнальных целей использовать широковещание на более низком уровне. Там вообще такого понятия, как порты, нету. Тогда заодно удастся попасть на те хосты, которые имеют адрес из другой ip-посдети в этом же широковещательном домене сети. Правда, боюсь, чтобы "услышать" такой фрейм, придется интерфейс в promiscuous mode переводить. Но сюда я на практике не совался, могу наврать.
Можно, только у меня тоже этой практики ноль, да и стеорией не очень. Как понимаю это raw-сокеты надо использовать, немного читал про них, пришел к выводу что не готов я такие поделки делать.
...
Рейтинг: 0 / 0
P2P по UDP
    #38794252
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovMailslot - часть SMB и работает оно тогда, когда есть доступ к ресурсам "сети MS".
Степень опасности и уровень рекомендованности сами оцените или разжёвывать?
Разжевывать.
Как я понимаю никой угрозы безопасности не должны создать мои маилслоты. Я же их в инет не собираюсь высовывать. Только внутри локалки. Никакие настройки самой локалки я тоже трогать не собираюсь, нет у меня ни желания, ни возможности затачивать чужую сетку под мою прогу. Мне надо чтобы работало в виндовой локалке настроенной по умолчанию.

Написал тест: каждый комп рассылает свое имя на все маилслоты с заданным именем.
Запустил на 3-х компах каждый видит сообщения остальных.
исходник
Код: plaintext
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.
#include <windows.h>
#include <stdio.h>
#include <process.h>

#define MAX_MSG_SIZE 424 // максимальный размер сообщения
HANDLE slot_read = NULL;

//*****************************************************************************************
// Поток приема сообщений из слота
unsigned __stdcall mailslot_recv(void* slot_name)
{
	// Открытие слота для приема
	char name[256];
	sprintf_s(name, 256, "\\\\.\\mailslot\\%s", slot_name);
	slot_read = CreateMailslot(name, MAX_MSG_SIZE, 1000, (LPSECURITY_ATTRIBUTES) NULL);
	bool work = true;
    if(slot_read == INVALID_HANDLE_VALUE) 
    { 
        printf("CreateMailslot failed with %d\n", GetLastError());
        work = false; 
    } 

	// Ожидание сообщений
	while(work) {
		char buf[MAX_MSG_SIZE + 1];
		DWORD read = 0;
		if(!ReadFile(slot_read, buf, MAX_MSG_SIZE, &read, NULL)) {
			switch(GetLastError()) {
				case 121:
					// Истекло время ожидания сообщения заданное в CreateMailslot()
					printf("*"); 
					read = 0;
					break;
				default:
					printf("ReadFile failed with %d.\n", GetLastError());
					work = false;
					break;
			}
		} else {
			buf[read] = 0;
			printf("%5d: recv %s\n", GetTickCount() % 100000, buf);
		}
	}
    _endthreadex(0);
    return 0;
}

//---------------------------------------------------------------------------------
// Отправка сообщения в слот всем слушающим в сети
bool mailslot_send(char* slot_name, char* msg, int size)
{
	if(size > MAX_MSG_SIZE) {
		printf("Message too long\n");
		return false;
	}
	// Открытие слота на отправку
	char name[256];
	sprintf_s(name, 256, "\\\\*\\mailslot\\%s", slot_name);
	HANDLE slot = CreateFile(name, GENERIC_WRITE, FILE_SHARE_READ, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); 
	if(slot == INVALID_HANDLE_VALUE) {
		printf("CreateFile failed with %d.\n", GetLastError()); 
		return false;
	}
	// Отправка сообщения
	DWORD written = 0;
	if(!WriteFile(slot, msg, size, &written, NULL)) {
		printf("WriteFile failed with %d.\n", GetLastError()); 
		CloseHandle(slot);
		return false;
	}
	CloseHandle(slot);
	return true;
}

int main(int argc, char* argv[])
{
	char* slot_name = "compnames";
	HANDLE th = (HANDLE)_beginthreadex(NULL, 0, &mailslot_recv, slot_name, 0, NULL);
	// Получение имени компа
	char compname[100];
	size_t comp_size = 100;
	getenv_s( &comp_size, compname, comp_size, "COMPUTERNAME");
	if(comp_size <= 0) {
		strcpy(compname, "X3");
	} 
	// Рассылка своего имени всем
	for(int i = 0; i < 100; i++) {
		Sleep(500);
		char buf[1000];
		sprintf_s(buf, 1000, "%s %d", compname, i);
		mailslot_send(slot_name, buf, strlen(buf));
	}
	// Остановка приема
	CloseHandle(slot_read);
	WaitForSingleObject(th, INFINITE);
	CloseHandle(th);
	system("pause");
	return 0;
}


Получилось то что мне надо. И довольно просто.
...
Рейтинг: 0 / 0
P2P по UDP
    #38898960
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovкогда есть доступ к ресурсам "сети MS".
Dima T никой угрозы безопасности не должны создать мои маилслоты
Видимо тот самый случай, когда Basil A. Sidorovили разжёвывать?
Проблема именно в сети Майкрософт.
Везде, где мне нужна безопасность я первым делом удаляю эту сеть.
На всех, подконтрольных мне серверах и на всех моих компах ее нет.
...
Рейтинг: 0 / 0
P2P по UDP
    #38898988
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ART-CODEBasil A. Sidorovкогда есть доступ к ресурсам "сети MS".
Dima T никой угрозы безопасности не должны создать мои маилслоты
Видимо тот самый случай, когда Basil A. Sidorovили разжёвывать?
Проблема именно в сети Майкрософт.
Везде, где мне нужна безопасность я первым делом удаляю эту сеть.
На всех, подконтрольных мне серверах и на всех моих компах ее нет.
Я вкурсе про дырявость сети MS, только вопрос стоял не так. Вопрос был какую угрозу безопасности создает использование маилслотов? Что мне делать когда не будет сети МС я как-нибудь сам порешаю.
...
Рейтинг: 0 / 0
P2P по UDP
    #38899947
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искателям дыр расписываю подробно, чтобы топик не перечитывать.

Моя цель: сделать прогу, которая будет работать в чужой сети при любом раскладе, при этом с минимальными затратами на администрирование, т.к. за администрирование мне никто не заплатит. Платят только за работающую прогу.

Система взаимодействия целиком:
Комп А открывает случайный UDP-порт X, комп B порт Y. Номера X и Y на выбор ОС чтобы виндавс не задавал лишних вопросов, подробности выше 16789917 . Оба сидят за брэндмауэрами виндовса, который не пропустит пакет на A:X с адреса B:Y до тех пор пока A:X не пошлет B:Y. И наоборот. Т.е. чтобы начать получать пакеты друг-друга оба компа должны послать одновременно, точнее с разницей не более минуты, если больше - брандмауэр перестает пропускать.
Для этого каждый открывает и слушает маилслот, например "\\.\mailslot\ReаdySendUDP". Если прога на компе A желает связаться с другой, то делает широковещательную рассылку c указанием своего имени и порта (A:X) на "\\*\mailslot\ReаdySendUDP", прога на компе B получив A:X начинает слать тестовые пакеты на этот адрес и широковещательно рассылает свой адрес (B:Y) на "\\*\mailslot\ReаdySendUDP", комп А получив адрес B:Y начинает на него слать и они соединяются.

ХЗ в чем тут могут быть дыры. Разве что вышеупомянутые дыры реализации "сети МС", но я ее настройки не трогаю, никак не админю, т.е. если она есть, то дыры уже есть независимо от того открываю я маилслот или нет. Есть она или нет - личное дело того админа кто эту сеть админит, тем более что зачастую его вообще нет, сеть настроил знакомый компьютерный мальчик (сын директора/бухгалтера/уборщицы), тут я вообще не хочу к настройкам сети прикасаться, чтобы потом крайним не стать когда она наестся.

План Б. Настраиваем прогу на каждом компе на один и тот же UDP порт, при этом обязательно требуется разрешение брэндмауэра, дальше без всяких маилслотов широковещательно на этот порт. Минусы только в том что надо админить, т.е. переключать прогу в режим постоянного порта и открывать порт на всех компах где она запускается.

Ну и основная схема: компы находят друг-друга через мой сервер в инете, все выше написанное на случай когда он недоступен.

PS Пока не реализовано, т.к. не придумал как быть с проверкой подлинности того кто цепляется. Это сейчас выполняет сервер в инете.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / P2P по UDP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]