Как связать клиент и сервер с сокетом?
Как на самом деле запустить этот клиент-серверный проект на 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");