Клиент-сервер | Не работает подключение

Сеть в Unity3D

Клиент-сервер | Не работает подключение

Сообщение FigeraldS 25 апр 2020, 00:56

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

Заранее спасибо за все ответы!

Вот код:
Сервер.
Синтаксис:
Используется csharp
using System.Net.NetworkInformation;
using System.Net.Sockets;
               static void Main(string[] args)
        {
            Console.Title = "Server";
            Socket serverSocket = new Socket(/*AddressFamily.InterNetwork, */SocketType.Stream, ProtocolType.Tcp);
            Console.WriteLine("Ожидание подключения");
            serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8080));

            serverSocket.Listen(5);
            Console.WriteLine("Listen");
            Socket client = serverSocket.Accept();
            Console.WriteLine("Accept");
        }
 


Клиент
Синтаксис:
Используется csharp
using System.Net.NetworkInformation;
using System.Net.Sockets;
    void Start()
    {
        Socket client = new Socket(SocketType.Stream, ProtocolType.Tcp);
        do
        {
            client.Connect(IPAddress.Parse("192.168.0.106"), 8080);
        } while (!client.Connected);
    }
 
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение AngryCat 26 апр 2020, 12:16

Какие ошибки пишет?
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: Клиент-сервер | Не работает подключение

Сообщение Saltant 28 апр 2020, 13:11

А коннектить клиент через while это типа ваще норма? Я считаю не норма.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 28 апр 2020, 20:32

AngryCat писал(а):Какие ошибки пишет?

Ошибок никаких, просто как будто адрес не тот, но это не так. С этой штукой разобрался, но у меня теперь другая проблема: не пингуются устройства:
Сервер на одном телефоне, клиент - на другом.
Синтаксис:
Используется csharp
 Ping ping = new Ping();
txt.text += $"\n{ping.Send(IPAddress.Parse("192.168.43.173")).Status}";
clientSocket.Connect(IPAddress.Parse("192.168.43.173"), 6843);
 

Вот так пингую. Но до clientSocket.Connect не доходит
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 28 апр 2020, 20:33

Saltant писал(а):А коннектить клиент через while это типа ваще норма? Я считаю не норма.

while изначально у меня, чтобы пинговать устройства в сети и те, что пингуются - к ним пытаться подключаться.
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение Saltant 28 апр 2020, 22:38

А сервер на мобильном телефоне это вообще нормальное явление? я считаю что не нормальное. Что вы за гайды такие курите что потом такие идеи у вас интересные (popcorn1)
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 29 апр 2020, 10:47

Saltant писал(а):А сервер на мобильном телефоне это вообще нормальное явление? я считаю что не нормальное. Что вы за гайды такие курите что потом такие идеи у вас интересные (popcorn1)

Хорошо, тогда каким образом мне соединять два устройства для передачи сообщений друг другу?
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение Saltant 29 апр 2020, 11:59

Ну как ты в WatsApp или другом мессенджере обмениваешься сообщениями? Так же и тут делай. Пишешь сервер на ПК который принимает подключения, к нему подключаешь клиентов, не важно какое устройство, хоть микроволновку, далее клиент отправляет серверу сообщение, сервер его получает, обрабатывает и пересылает нужным тебе адресатам ибо сервер знает о всех подключенных клиентах. Вот по такому принципу делают клиент-серверные приложения.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 29 апр 2020, 12:29

Saltant писал(а):Ну как ты в WatsApp или другом мессенджере обмениваешься сообщениями? Так же и тут делай. Пишешь сервер на ПК который принимает подключения, к нему подключаешь клиентов, не важно какое устройство, хоть микроволновку, далее клиент отправляет серверу сообщение, сервер его получает, обрабатывает и пересылает нужным тебе адресатам ибо сервер знает о всех подключенных клиентах. Вот по такому принципу делают клиент-серверные приложения.


Мне нужен обмен сообщениями между двумя андроид-устройствами. И я делаю так, чтобы сервером был один из них.
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение Saltant 29 апр 2020, 13:11

Тогда это называется Peer-to-Peer (P2P, одноранговая сеть) а не клиент-серверное приложение. Посмотри информацию по этой теме тут https://professorweb.ru/my/csharp/web/level8/8_3.php и тут https://docs.microsoft.com/ru-ru/dotnet ... at-ext-3.1
P.S сам ссылки я подробно не читал, но тебе точно нужно копать в сторону P2P архитектуры раз ты хочешь подключать одного клиента к другому.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 29 апр 2020, 19:41

Saltant писал(а):Тогда это называется Peer-to-Peer (P2P, одноранговая сеть) а не клиент-серверное приложение. Посмотри информацию по этой теме тут https://professorweb.ru/my/csharp/web/level8/8_3.php и тут https://docs.microsoft.com/ru-ru/dotnet ... at-ext-3.1
P.S сам ссылки я подробно не читал, но тебе точно нужно копать в сторону P2P архитектуры раз ты хочешь подключать одного клиента к другому.


Спасибо за ссылки. Я уже смотрел Р2Р, но у меня вылетает ошибка на
Синтаксис:
Используется csharp
PeerCollaboration.GetPeersNearMe()
. Вероятно, P2P работает только на windows 7 и vista. Ошибка: PeerToPeerException: Сбой при запуске одноранговой совместной работы. Одноранговая инфраструктура Windows не лицензирована для работы в данной платформе.
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение Saltant 29 апр 2020, 19:53

Ну вообще, самым наитупейшим способом через tcp listener тоже должно работать всё, при условии что открыты порты и трафик нигде не блокируется, честно говоря на андройде я не имел потребности поднимать сервер, просто за ненадобностью, одноранговые сети (p2p) это как прошлый век, если нужно соединить устройства я всегда делаю через мастер сервер, такой написать можно за час и закинуть куда нить в облако если нет собственного физического сервера.
Так что дебаж, смотри на каком этапе не идет трафик, можешь пакеты половить в сети, благо в своей вай фай сети ты можешь это спокойно и законно сделать.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 01 май 2020, 05:53

Saltant писал(а):Ну вообще, самым наитупейшим способом через tcp listener тоже должно работать всё, при условии что открыты порты и трафик нигде не блокируется, честно говоря на андройде я не имел потребности поднимать сервер, просто за ненадобностью, одноранговые сети (p2p) это как прошлый век, если нужно соединить устройства я всегда делаю через мастер сервер, такой написать можно за час и закинуть куда нить в облако если нет собственного физического сервера.
Так что дебаж, смотри на каком этапе не идет трафик, можешь пакеты половить в сети, благо в своей вай фай сети ты можешь это спокойно и законно сделать.


Немного поискал, нашел такую штуку. Клиент:
Синтаксис:
Используется csharp
void Start(){
            localIp = InitLocalIp();
            Socket sock = new Socket(AddressFamily.InterNetwork,
                SocketType.Dgram, ProtocolType.Udp);
            IPEndPoint iep = new IPEndPoint(IPAddress.Any, 1556);
            sock.Bind(iep);
            EndPoint ep = (EndPoint)iep;
            Debug.Log("Ready to receive...");

            byte[] data = new byte[1024];
            int recv = sock.ReceiveFrom(data, ref ep);
            string stringData = Encoding.ASCII.GetString(data, 0, recv);
            Debug.Log($"received: {stringData}  from: {ep}");

            sock.SendTo(Encoding.ASCII.GetBytes(localIp), ep);
}
    static string InitLocalIp()
    {
        string Host = Dns.GetHostName();
        string IP = Dns.GetHostAddresses(Host)[0].ToString();
        return IP;
    }

 


Сервер:
Синтаксис:
Используется csharp
            UdpClient udp = new UdpClient();
            int GroupPort = 1556;
            IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, GroupPort);    //Parse("255.255.255.255")
            string str4 = "Is anyone out there?";
            byte[] sendBytes4 = Encoding.ASCII.GetBytes(str4);
            udp.Send(sendBytes4, sendBytes4.Length, groupEP);
            byte[] receiveBytes = udp.Receive(ref groupEP);
            string returnData = Encoding.ASCII.GetString(receiveBytes);
            Debug.Log("Response: " + returnData);
 


т.е отправляю Broadcast, но на двух андроидах также не работает.
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

Re: Клиент-сервер | Не работает подключение

Сообщение Saltant 01 май 2020, 08:31

А зачем такой низкий уровень вообще? Есть же Telepathy например https://github.com/vis2k/Telepathy
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Клиент-сервер | Не работает подключение

Сообщение FigeraldS 01 май 2020, 18:56

Saltant писал(а):А зачем такой низкий уровень вообще? Есть же Telepathy например https://github.com/vis2k/Telepathy


Спасибо большое за ссылку, но когда в клиенте указываю ip-адрес 255.255.255.255, то выдает ошибку, что неверный формат адреса.
FigeraldS
UNец
 
Сообщения: 16
Зарегистрирован: 25 апр 2020, 00:47

След.

Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4