Цитата:
Сообщение от wvxvw
Есть предположение, что вы считываете содержание в строку, и потом эту строку в trace() - так да, вы увидете только до первого нуль-байта. Но вообще, ну, по крайней мере в теории TCP не должен терять пакеты. Разве что провод сетевой перерезать
|
ХЗ...
Код AS3:
private function connectToServer(host:String,port:int):void{
Security.loadPolicyFile("xmlsocket://"+host+':'+port);
if (host && port)
{
socket.connect(host, port);
} else return;
socket.addEventListener(Event.CLOSE, closeHandler);
socket.addEventListener(Event.CONNECT, connectHandler);
socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function readResponse() : void {
var str:String = socket.readUTFBytes(socket.bytesAvailable);
trace(str);
}
private function sendRequest(str:String) : void {
writeln(str);
socket.flush();
}
private function writeln(str:String) : void {
try
{
socket.writeUTFBytes(str);
}
catch (e:IOError)
{
trace(e);
}
}
private function socketDataHandler(event : ProgressEvent) : void {
trace('ProgressEvent');
readResponse();
}
Добавлено через 13 минут
доработал функцию readResponse чтобы проверить есть ли что нибудь после нуля
Код AS3:
private function readResponse() : void {
var str:String = socket.readUTFBytes(socket.bytesAvailable);
trace(str,'-str');
var str2:String = socket.readUTFBytes(socket.bytesAvailable);
trace(str2,'-str2');
}
Там пусто. И ваще не логично чтобы два сообщения шли в одном.
Данный сокет сервер устрое так что собщения отправляются из разных мест (классы)
Класс состояния группы слушает события в группе и на них реагирует (сокет вошел, сокет ушел.... и тд)
Класс контроллер проверяет можно ли пользователю в группу и логинет его туда(если можно) и выдает соответствующий ответ успешно или нет
Добавлено через 19 минут
Цитата:
Сообщение от etc
Это если используется XMLSocket.
|
flash.net.Socket