Что нового

Сервер для соединения 2х клиентов

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
В данном направлении не имею ни опыта ни понятия, знаю что можно написать свой сервер и поставить на свою машину, но я подумал о другом варианте, возможно ли написать простой PHP сервер для обмена короткими сообщениями, залить на бесплатный хост и соединять клиенты через него скажем посредством WinHTTP? либо если есть другой вариант который не требует установки сервера на свою машину, выслушаю с удовольствием. Такие варианты как работа через сервера ICQ, IRC, Mail - сразу отлетают, нужен свой.
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Я недавно сделал такой чат. Написал на автоите гуи, с отображением листа сообщений, и инпутом для ввода сообщения. В гуи вводишь ник и сообщение, при нажатии кнопку, посылается POST (или GET, не помню) запрос на php скрипт. Php скрипт на бесплатном хостинге выполняет функцию записи принятого ника и сообщения в файл на сайте. А на скрипте с гуи крутится цикл который каждые 5 секунд загружает лист с сообщениями из файла с сайта. Ну вот такой, только сообщения получаются не совсем мгновенными.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Ну мгновенных мне не нужно, просто необходимо реализовать обмен сообщениями между двумя клиентами не важно в каком виде, если остался пример, можешь показать?
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Сейчас не могу, я не дома (у бабушки), так что к сожалению кода пока нет :(
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Ну ни чего, не критично. Кстати ведь можно организовать так:

После авторизации на сервере, сервер сохраняет в файл данные авторизованного, то есть

NICK:IP

После авторизации он рассылает всем клиентам NICK'и из файла, а каждый клиент в свою очередь отображает их на форме, далее выбираем нужный нам NICK из списка и отправляем сообщение

NICK:MESSAGE

Сервер первым делом смотрит ник и сверяется с файлом если такой находит, то достаёт IP и отправляет на этот IP твоё сообщение, пока хотя бы так, а если какой либо клиент дисконектился от сервера, то отправляет команду CLOSE:NICK, а сервер рассылает всем клиентам из списка, я с PHP вообще не знаком но знаю что там есть массивы и это всё можно реализовать без сохранения в файл, так и удалить вышедшего клиента из массива проще, пока что только такие соображения.

Наверное так и работать побыстрее будет, только как с помощью PHP отправить данные на определённый IP...
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
На счет ip и php, я не знаю(я вообще почти не знаю php), знаю что только по tcp на ip отправлять, но там нужен сервер
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Вот например можно реализовать массив с ником и ip адресом

Код:
<?php 
$aList = array(array("NICK", "ADDRESS"));

$aList[count($aList)][0] = "Test";
$aList[count($aList)][1] = "0.0.0.0";

for ($i=1; $i=count($aList); $i++){
  echo "{$aList[$i][0]} {$aList[$i][1]}";
}
?>

Результат

:smile: вот что значит бесплатный хост, уже не работает...
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Интересно ... :smile:


Добавлено:
Сообщение автоматически объединено:

Да там скрипты на питоне, в 10 раз упрощает задачу ;D
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Насчет хостинга, можно попробовать hut.ru или 000webhost.com
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Нашёл пример сервера на PHP который принимает запросы от клиента и отправляет ему ответ.


Добавлено:
Сообщение автоматически объединено:

Всё безнадёжно, ни сервер на мой IP не может отправить сообщение, ни я если сервер будет стоять у меня, выкидываю Wifi роутер и дальше продолжаю пользоватся проводом.... :'(
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Ну а если попробовать в адресе указывать не свой внешний ip, а ip сайта на котором скрипт?
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Я уже объяснял свою проблему, я не знаю как этот роутер вообще работает, у меня присвоен DHCP

Если сервер стоит у меня:
1. Я с сервера могу отправить сообщение клиенту
2. Клиент не может ко мне присоединится

Если у меня клиент:
1. Я могу отправить серверу сообщение
2. Сервер не может отправить мне

А если подключу на прямую маршрутизатор с помощью LAN, то все проблемы исчезают.

Хотя Skype, Mail, IRC и т.д. работают, как они это делают - не знаю...

Макросы мне показывают такую картину:

IPAddress1 --> 192.168.0.101
IPAddress2 --> 0.0.0.0
IPAddress3 --> 0.0.0.0
IPAddress4 --> 0.0.0.0

Если на прямую через шнур:

IPAddress1 --> 127.0.0.1
IPAddress2 --> xxx.xxx.xxx.xxx <-- то есть мой внешний.
IPAddress3 --> 0.0.0.0
IPAddress4 --> 0.0.0.0
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
У меня тоже дома роутер, порты я не открывал и макросы у меня показывают только локальные адреса...
А вам обязательно делать вот эти сервера, клиенты, если вам нужна простая, не мгновенная передача инфы? Ведь можно сделать как я, просто запросами и записью в файл.


Добавлено:
Сообщение автоматически объединено:

Тогда не нужно будет все время держать включенным комп
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Так это можно и с помощью FTP тогда сделать, все на AutoIt'e, меня просто раздирает, почему клиент/сервер на любом языке программирования не могут связаться у меня, а ICQ, Skype, IRC могут без проблем...

Тогда не нужно будет все время держать включенным комп

Так для этого я и хочу написать PHP сервер и залить на бесплатный хост, но даже такой вариант мне не помог...
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Ну так значит в сервере должен быть указан не ваш внешний ip, а ip - сервера, тоесть попробуйте TCPNameToIP("ваш сайт"), и то что из этого выйдет, указывайте в php сервера и клиента.
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Сервер должен быть localhost а в клиенте указываем

Код:
TCPNameToIP('адрес сайта')


Да и ещё, это всё безсмысленно я перепобывал уже всё и точно знаю что клиент и сервер мне теперь ни когда не соеденить, придётся опять через посредников типа IRC, ICQ ...
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Даже так не работает? А порт попробуйте указать тот с которым вы подключаетесь по ftp
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Ни чего не работает из-за этого роутера, в мусор такие девайсы...
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
А у вас клиент на php или autoit?
P.S. Если не будет роутеров, не будет ви-фи :smile:
 
Верх