Как связать клиент и сервер с сокетом?

Как на самом деле запустить этот клиент-серверный проект на ActionScript 3? Я использую flashbuilder. Я не уверен, правильно ли я поступаю, я сделал новый мобильный проект и вставил код для своего клиента, который выглядит так:

public class client extends Sprite
{
    private var socket:Socket;
    private var IP:String = "127.0.0.1";

    public function client()
    {
        super();

        socket = new Socket();
        socket.addEventListener(Event.CONNECT, onConnected);
        socket.connect(IP, 5555);
    }

    protected function onConnected(event:Event):void
    {
        socket.writeUTFBytes("communication between Sockets (Client socket and server socket)");
        socket.flush();
    }
}

а затем я создал новый класс в пакете, в котором есть класс клиента (как указано выше), и добавил его как класс сервера:

public class NewSocketServerTest extends Sprite
{
    private var serverSocket:ServerSocket = new ServerSocket();
    private var clientSocket:Socket;

    private var txt:TextField;
    public function NewSocketServerTest()
    {
        createUI();
        serverSocket.bind(5555);
        serverSocket.addEventListener(ServerSocketConnectEvent.CONNECT, onConnected);
        serverSocket.listen();
    }

    protected function onConnected(event:ServerSocketConnectEvent):void
    {
        txt.appendText("This is a demonstration of \n" );
        clientSocket = event.socket;
        clientSocket.addEventListener(ProgressEvent.SOCKET_DATA, onDataHandler);
    }       

    protected function onDataHandler(event:ProgressEvent):void
    {
        var str:String = clientSocket.readUTFBytes(clientSocket.bytesAvailable);
        txt.appendText(str);
    }

    private function createUI():void
    {
        txt = new TextField();
        txt.width=400;
        txt.height=400;
        txt.appendText("Hello! \n");
        addChild(txt);
    }
}

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

1 ответ

Попробуйте указать имя хоста serverSocket.

serverSocket.bind(5555,"127.0.0.1");
Другие вопросы по тегам