Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> клиент не принимает данные с сервера (сокеты ) 
:(
    Опции темы
freeclim
Дата 22.6.2013, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 14.5.2013

Репутация: нет
Всего: нет



ДВС! 
есть сокет сервер, написанный  на джаве, клиент написан на ActionScript. Вначале клиент отправляет серверу число (это работает), сервер обратно возвращает клиенту строку, которую он как бы отсылает, но клиент не может ее получить. Подскажите, пожалуйста, что не так) очень  благодарна заранее. 

Вот мой сервер, который на джаве 

Код

public class Server {
    public static void main(String[] args)    {
        int port = 6666; 
        try {

            ServerSocket ss = new ServerSocket(port); 
            System.out.println("Waiting...");

            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

            ProgramLogic programLogic = context.getBean("programLogic", ProgramLogic.class);  // запускаю основную логику программы
            ForConnectServer forConnectServer=context.getBean("forConnectServer",ForConnectServer.class);
            
            Socket socket = ss.accept(); 
       
            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();

            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);


            forConnectServer.scheduleWork();//логика основной программы

            String line = null;
            while(true) {

                int id = in.readInt();

                System.out.println("from client id  = "+ id);
                String str = "hello, "+id;

                out.writeUTF(str);

                out.flush();
                System.out.println("Waiting for the next line...");
                System.out.println();
            }
        } catch(Exception x) { x.printStackTrace(); }
    }
}


а это клиент на ActionScript
Код


public class Client extends Sprite {
    private var socket:Socket;
    public function Main():void {

        const serverPort:int = 6666; /
        const address:String = "127.0.0.1"; 
        trace("Any of you heard of a socket with IP address " + address + " and port " + serverPort + "..." + "\n");
        socket = new Socket(address, serverPort);

        trace("Sending this line to the server...");
        socket.writeInt(502); 
        socket.flush();
      
        var data:String = "";
     
         var ch:int =      socket.bytesAvailable;

        while (ch == 0){
            ch =   socket.bytesAvailable;
            trace ('ch = '+ch);
        }
        if (ch>0){
            data += socket.readUTF();
            trace ('data = '+data);
        }
        trace("data " + data);

        if (data!=""){
        socket.close(); 
         trace ("Socket closed!");  
             }
        trace ("Socket not closed!");
    }
}
}





PM MAIL   Вверх
Simplifier
Дата 21.7.2013, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 18.7.2011

Репутация: нет
Всего: нет



Данные из сокета надо в ас3 считывать не синхронно, а по событию ProgressEvent.SOCKET_DATA. http://help.adobe.com/ru_RU/FlashPlatform/...net/Socket.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0959 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.