PDA

Просмотр полной версии : Сокет сервер


razo
29.06.2012, 14:22
Здравствуйте ! я слышал про сокет сервер , искал в инете но особо серозных ответов не нашел и решил написать здесь, можете кратко объяснить что это , мне что то кажется что я этим пользовался в программированием :) просто по названием не знаю ))

bav
29.06.2012, 14:30
Сокет-сервер - это программа общающаяся с клиентами посредством сокетов. Пишется на любом серверном языке (C/C++, Java, Python, и т.д., даже на ActionScript). Не очень понятно, что вы подразумеваете под серьезными ответами. Вбиваете в Google что-то вроде "flash socket server" или "java flash socket". Если не понимаете взаимодействия по сокетам, почитайте соответствующую литературу, которая также на ура ищется в Google.

razo
29.06.2012, 16:22
в чем его преимущество?

Deimos747
29.06.2012, 16:46
В возможности использовать взаимодействие в реальном времени. Очень полезно для организации мультиплеера

Aquahawk
29.06.2012, 16:50
В том что это постоянное соединение клиента и сервера и сервер может послать клиенту какие-то данные сам по себе. Если просто запросы, то клиент спрашивает, сервер отвечает. А по сокету, сервер решил что что-то надо клиенту сказать и клиент это узнал.

razo
29.06.2012, 17:27
В том что это постоянное соединение клиента и сервера и сервер может послать клиенту какие-то данные сам по себе. Если просто запросы, то клиент спрашивает, сервер отвечает. А по сокету, сервер решил что что-то надо клиенту сказать и клиент это узнал.
а можете принести маленький пример когда AS всегда отправляет один запрос на сервер без нажатая какой либо кнопки, например отправляет на сервер "HELLO WORLD"

bav
29.06.2012, 17:36
Всегда - это когда?

var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, sendHelloWorld);
timer.start();

function sendHelloWorld(e:TimerEvent):void
{
// socket - переменная типа Socket, ссылающаяся на объект
// сокета уже подключенный к серверу
socket.writeUTF("HELLO WORLD");
socket.flush();
}

Подробности в хелпе (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/net/Socket.html).

razo
29.06.2012, 18:24
сокет сколько раз в секунду обновляется ?

Aquahawk
29.06.2012, 18:30
он не обновляется сколько то раз в секунду, в том и дело. Он висит постянно, как сервак туда что-то запихнул, так на клиенте оно и будет получено.

bav
29.06.2012, 18:33
Сокет не обновляется. Когда клиенту от сервера приходят какие-нибудь данные возникает событие ProgressEvent.SOCKET_DATA, после которого можно эти данные считать. Ну а со стороны сервера, думаю во всех языках есть функция типа read, которая останавливается до прихода данных со стороны клиента.

Romeo4755
15.03.2014, 19:57
Здравствуйте. У меня вопрос в дополнение данной темы. В книжке про многопользовательские приложения все на примере ЭлектроСервераАС. Это в наше время рабочий вариант или надо что-то другое читать?
(У меня задача - устное общение двух человек. Они могут быть представлены на экране в виде фигурок, а вокруг - комната или лес (просто картинка), и чтобы два пользователя могли обсудить что у них справа, что слева). Флешка некоммерческая, для себя, никаких безопасностей или регистрации пользователей и прочих товарных примочек нам не надо. Просто надоело в скайпе в рожу друг другу на ходу нарисованные планы комнаты совать и пальцами тыкать, кто где сейчас находится.
Два пользователя заходят на знакомый адрес в инете, там флешка с комнатой. Один другого спрашивает - "что у тебя слева?" - "У меня слева стол." - "Молодец. Правильно. А справа?" и т.д. В крайнем случае можем, конечно, смотреть на картинку и говорить по скайпу, но хочется поаккуратнее и со временем, может, научимся ходить по картинке или втроем разговаривать, разговоры будут разнообразнее.

Aquahawk
15.03.2014, 20:04
http://labs.adobe.com/technologies/cirrus/samples/

Romeo4755
15.03.2014, 23:23
http://labs.adobe.com/technologies/cirrus/samples/
То есть вы советуете пользоваться Flash Builder 4, а не просто AS? А каким образом в нем будет реализовано взаимодействие между пользователями? Не будет нужен сокет сервер вообще, там уже как-то реализован механизм?
Цирус в данном случае не совсем то, что надо - вопрос не в коммуникации в первую очередь (как я уже говорила, можно скайпом пользоваться параллельно), а в общем графическом пространстве, чтобы два человека как бы виртуально находились в одном воображаемом месте и являлись в него интегрированными (например, имели конкретное место нахождения на картинке и видели друг друга, кто где находится). С точки зрения однопользовательского флеша это просто примитивно. Многопользовательского - наверно, тоже примитивно, просто надо определить набор инструментов.

Aquahawk
15.03.2014, 23:50
В таком случае вам стоить оставить эту затею. Ибо то что вы тут написали свидетельствует о крайне слабом понимании предмета и нежелании разобраться. Я советую вам прочитать статью полностью и понять что даёт этот механизм.

Bletraut
16.03.2014, 02:49
То есть вы советуете пользоваться Flash Builder 4, а не просто AS? А каким образом в нем будет реализовано взаимодействие между пользователями? Не будет нужен сокет сервер вообще, там уже как-то реализован механизм?
Цирус в данном случае не совсем то, что надо - вопрос не в коммуникации в первую очередь (как я уже говорила, можно скайпом пользоваться параллельно), а в общем графическом пространстве, чтобы два человека как бы виртуально находились в одном воображаемом месте и являлись в него интегрированными (например, имели конкретное место нахождения на картинке и видели друг друга, кто где находится). С точки зрения однопользовательского флеша это просто примитивно. Многопользовательского - наверно, тоже примитивно, просто надо определить набор инструментов.

А конкретно: Flash Builder 4, а не просто AS ЧяГо? Вы поняли о чём идет речь вообще? Здесь говорится не о сокет соединении, а о соединение p2p (peer to peer - равный равному). То, что человек в видео уроке пишет и компилит код в билдере не значит, что пользоваться тоже надо билдером, можете код хоть в кадрах во флеш писать. Само соединение p2p те великодушно предоставит Адоб, ни каких задрочек с сервером, сокетами, собственно как и баз данных у тебя не будет, останется лишь переписать под свои нужны, а именно под общение в комнате.

Romeo4755
16.03.2014, 19:27
Вы поняли о чём идет речь вообще?
На понимание не претендую, т.к. уже сказала, что область новая и пытаюсь определить набор ПО для изучения. Но вопрос-то в возможности свести вместе в перспективе более двух человек. Разве пи-ту-пи сгодится? Разве не нужен сокет-сервер для простейших действий? Например, переставляют фишки на картинке. Или просто картинка меняется (появляются надписи), а ее присутствующие на странице отслеживают, не обновляя экрана.
Я не хочу использованием Скайпа вводить в заблуждение - мы им в основном пользуемся в режиме конференций, неск. человек.

никаких задрочек с сервером
Электросервер показался вполне привлекательным и несложным в виде набора функций. И как бы комната нам нужна всего одна, что уменьшает задачу.

Я советую вам прочитать статью полностью и понять что даёт этот механизм.
А вы не могли бы просто сказать, что дает этот механизм? Я могу просто прочитать много статей и убедить что это вовсе не то, что надо. Чтобы их не читать я просто спрашиваю на форуме: что надо для выполнения такой-то задачи. При этом предложенный вариант сразу внушает сомнения по причине отсутствия сервер сокета. И я справедливо задаю вопрос, прежде чем читать дальше, а многопользование, собственно, реализуется тут или нет?

Bletraut
16.03.2014, 20:15
Электросервер показался вполне привлекательным и несложным в виде набора функций. И как бы комната нам нужна всего одна, что уменьшает задачу.

Ну если у есть у вас сервер, то ставьте туда электротанк, который платный и весит порядка 500 мб, доков по нему как кот наплакал.

p2p вам позволит сделать именно то что нужно, просто все данные нужно будет передавать в тексте, а потом парсить этот текст, ну или byteArray передавать если нужен звук и видео. Я пытался сделать на нём многопользовательскую игру платфомер, но так как p2p слишком медленный для таких целей и пришлось прямо скажу нехило придрочиться к синхронизации, то данная идея так и осталась недоделанной.

А если вам не важна синхронизация, а я уверен что для именно такого проекта она особой роли не играет, то данная штука вам вполне пойдет.

А вы не могли бы просто сказать, что дает этот механизм? Я могу просто прочитать много статей и убедить что это вовсе не то, что надо. Чтобы их не читать я просто спрашиваю на форуме: что надо для выполнения такой-то задачи. При этом предложенный вариант сразу внушает сомнения по причине отсутствия сервер сокета. И я справедливо задаю вопрос, прежде чем читать дальше, а многопользование, собственно, реализуется тут или нет?

Да, реализуемо. Советую посмотреть пример как создается многопользовательский чат. Использовать билдер как это делает человек в уроке НЕ ОБЯЗАТЕЛЬНО, делайте там где вы делайте.

Romeo4755
16.03.2014, 21:02
p2p вам позволит сделать именно то что нужно, просто все данные нужно будет передавать в тексте, а потом парсить этот текст, ну или byteArray передавать если нужен звук и видео.
А как такой разговор будет на практике выглядеть? Речь будет речью или кваканьем или задержки постоянные при перекодировке? А если шесть человек будут говорить и все-таки понадобится разводить их по комнатам?

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

Использовать билдер как это делает человек в уроке НЕ ОБЯЗАТЕЛЬНО
Я так поняла, что ему именно билдер коммуникативные средства предоставляет - т.к. не интересовалась ими ни в каких программах.

туда электротанк, который платный и весит порядка 500 мб
Электротанк - это собственно сервер? ПО? Он до 5 пользователей, вроде, бесплатный.

gloomyBrain
16.03.2014, 21:10
p2p вам позволит сделать именно то что нужно, просто все данные нужно будет передавать в тексте, а потом парсить этот текст, ну или byteArray передавать если нужен звук и видео.
Это ерунда полнейшая, зачем Вы это пишете? Хотя бы погуглите по запросу flash p2p video (http://bit.ly/1d4oJwX)


Я пытался сделать на нём многопользовательскую игру платфомер, но так как p2p слишком медленный для таких целей ...

Вы вообще хоть немножко в курсе чем UDP (http://en.wikipedia.org/wiki/User_Datagram_Protocol) отличается от TCP (http://en.wikipedia.org/wiki/Transmission_Control_Protocol)? "Медленный" тут явно лишнее слово в адрес протокола на основе UDP (http://en.wikipedia.org/wiki/Rtmfp).

Bletraut
16.03.2014, 21:42
Это ерунда полнейшая, зачем Вы это пишете? Хотя бы погуглите по запросу flash p2p video

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

Вы вообще хоть немножко в курсе чем UDP отличается от TCP? "Медленный" тут явно лишнее слово в адрес протокола на основе UDP.

Это если в сети 2 человека, а если уже больше то пока информация от каждого клиента дойдет до каждого клиента, то тут уже видны подвисания.

Добавлено через 1 минуту
Электротанк - это собственно сервер? ПО? Он до 5 пользователей, вроде, бесплатный.

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

caseyryan
16.03.2014, 23:07
Почитал тему и ужаснулся)) Еще один горе разработчик, который явно пытается начать не с того, с чего нужно.
Сразу вспомнилась куча желающих создать приложение для ВК, но не знающих даже как определить переменную.
То есть вы советуете пользоваться Flash Builder 4, а не просто AS?
Очевидно, Вам нужно сначала разобраться с тем что же такое AS для начала. И в чем разница между языком программирования и интергнированной средой разработки, и, да, придется прочитать кучу статей (да да, именно прочитать!!!, а не поверхностно проглядеть или спросить на форуме в чем общая суть)
Электротанк - это собственно сервер? ПО? Он до 5 пользователей, вроде, бесплатный.
Электротанк - это американская компания разработчик, основателем которой является Jobe Makar.
Их сервер называется ElectroServer.
Доводилось мне как-то года 3 назад с ним работать. Лицензию не покупал, использовал чисто для тестов. Да, ПО нормальное, но своих денег не стоит. С таким же успехом можно и Red5 заюзать. У которого API малость посложнее, но все равно разобраться можно

Babylon
17.03.2014, 01:57
Я очень хорошо понимаю "горе разработчика". Очень мало правильных мануалов как всё таки технологично работать с сокетами. Так, что не надо критиковать на пустом месте. Мой совет возьмите binary.js и погоняйте его на каком нибудь облачном ресурсе. Пока сами не пощупаете, не поймете разницу. Все реализации сокетов 3-годичной давности уже морально устарели.

Aquahawk
17.03.2014, 09:20
Все реализации сокетов 3-годичной давности уже морально устарели.
Извольте пояснить, чем?

dimarik
19.03.2014, 21:53
Romeo4755, эта тема обсуждения 2012 г., в следующий раз просто поднимите свою новую тему, с отсылкой на "старую". Некропостинг достаточное зло. Оно не наказуемо, но незримо присутствует в виде "здесь так заведено".

Все реализации сокетов 3-годичной давности уже морально устарели.

Довольно смелое заявление, вы сами не находите?

Psycho Tiger
20.03.2014, 10:48
Только XML вечен.

Babylon
20.03.2014, 13:23
Лучше ответить почему вечен. Ответ: XML удобный механизм запросов к объекту. Это удобство механизма запросов перевешивает все остальные неудобства.

Добавлено через 5 минут
Кстати, я использую и XML и JSON и Array и битовые поля :)
Не надо думать, что я зациклен только на XML. Он весьма удобен для протитипирования структуры объектов и построения отношений для последущего агрегатирования. В скобках JSON очень легко потеряться.

kotyavo
20.03.2014, 19:25
Мне этот зверек нравится socket.io (http://socket.io/) для серверной части.