Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.10.2010, 19:00
CJRoman вне форума Посмотреть профиль Отправить личное сообщение для CJRoman Найти все сообщения от CJRoman
  № 1  
Ответить с цитированием
CJRoman

Регистрация: Oct 2010
Сообщений: 7
По умолчанию socket не принимает ответы

Здравствуйте. Есть такой код:

Код AS3:
 
import flash.display.Sprite;
import flash.events.*;
import flash.net.Socket;
 
var socket:Socket;
socket=new Socket();
 
socket.connect('localhost', 6227);
 
 
socket.writeMultiByte('connected', 'windows-1251');
socket.flush();
socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
function onSocketData(Event:ProgressEvent):void {
	trace ('1');
}
Он должен прослушивать сообщения, приходящие с клиента. Что я делаю не так? В окне вывода ничего не высвечивается, зато строка connected уходит.

Старый 28.10.2010, 19:08
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Возможно, стоит дождаться события Event.CONNECT, и только после этого вызывать методы writeMultiByte() и flush()?

Старый 28.10.2010, 20:33
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Он должен прослушивать сообщения, приходящие с клиента
Эмм... То есть у Вас флешка - это сервер?
__________________
...вселенская грусть

Старый 29.10.2010, 04:41
CJRoman вне форума Посмотреть профиль Отправить личное сообщение для CJRoman Найти все сообщения от CJRoman
  № 4  
Ответить с цитированием
CJRoman

Регистрация: Oct 2010
Сообщений: 7
Ну нет. Флешка - это программа, которая принимает команды от управляющей программы на дельфях. И она должна ответить, что команду приняла и все такое. Так вот отвечать она отвечает, а принимать - нет.

Добавлено через 4 минуты
не срабатывает прослушка socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData); но почему? даже прога на дельфи получает строку.

Старый 29.10.2010, 10:50
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 5  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Так, погодите-ка.
Цитата:
И она должна ответить, что команду приняла и все такое. Так вот отвечать она отвечает, а принимать - нет.
Эти два предложения противоречат друг другу. Раз флешка отказывается, как вы говорите, принимать что-либо, на что же она тогда отвечает?
Если вы работаете во FlashDevelop, проверьте режим компиляции (Debug или Release)(можно сделать output из TextField'а и использовать output.appendText("Wow! That's my data!") вместо trace()). Удостоверьтесь также, действительно ли программа на дельфях отправляет данные тогда, когда соединение установлено.


Последний раз редактировалось bav; 29.10.2010 в 10:53.
Старый 29.10.2010, 14:39
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 6  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
вы ждете ответа сервера ?
с чего вдруг ?
сокет не отвечает за доставку, вы сами должны контролировать ответ

Старый 29.10.2010, 17:14
passertm вне форума Посмотреть профиль Отправить личное сообщение для passertm Найти все сообщения от passertm
  № 7  
Ответить с цитированием
passertm
[+1 28.12.10]
[+1 29.12.10]
 
Аватар для passertm

Регистрация: Aug 2006
Сообщений: 107
чисто так предположение
а может стоит сначало добавить
Код AS3:
socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
а потом писать ?

и что на счет этого варианта?
Цитата:
Возможно, стоит дождаться события Event.CONNECT, и только после этого вызывать методы writeMultiByte() и flush()?

Старый 29.10.2010, 17:56
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 8  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Он должен прослушивать сообщения, приходящие с клиента.
Для начала стоит понять, кто такой клиент.

Старый 29.10.2010, 18:39
chabapok вне форума Посмотреть профиль Отправить личное сообщение для chabapok Найти все сообщения от chabapok
  № 9  
Ответить с цитированием
chabapok

Регистрация: Jul 2009
Сообщений: 240
Записей в блоге: 1
может вы слишком поздно подписываетесь на событие?
попробуйте подписаться на событие до того, как что-либо слать в сокет.

Старый 29.10.2010, 18:44
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Отправка и получение происходит асинхронно, то есть без разницы. Но подписаться на CONNECT нужно перед тем как что то в сокет класть.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.