소켓 서버와 상호 작용하는 플래시 AS3 파일이 있는데 서버는 일반 텍스트로 데이터를 보냅니다. Socket 클래스를 사용하여 서버에서 보내고있는 데이터를 읽을 수 없습니다. 플래시에서 사용하는 코드는 다음과 같습니다.소켓에서 데이터를 읽을 수 없습니다.
var socket:Socket = new Socket("localhost", 9231);
socket.addEventListener(Event.CONNECT, socketConnectHandler, false, 0, true);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler, false, 0, true);
function socketConnectHandler(event:Event):void{
trace("Connection has been established ");
}
function socketDataHandler(event:ProgressEvent):void{
var stream:ByteArray = new ByteArray();
socket.writeBytes(stream, 0, 0);
trace(stream.readUTF());
trace(socket.readUTF());
}
ByteArray 및 소켓 데이터를 읽으려고 시도하는 동안 아래 오류가 발생합니다.
Error: Error #2030: End of file was encountered.
at flash.net::Socket/readUTF()
at socket_test_fla::MainTimeline/socketDataHandler()
저는 다양한 조합을 시도해 성공하지 못했습니다. 문제를 이해하고 수정 사항을 찾는 데 도움이되는 단서는 감사하게 생각합니다.
업데이트 :
내가
var stream:ByteArray = new ByteArray();
socket.writeBytes(stream, 0, 0);
var data:String = "";
while(socket.bytesAvailable > 0) {
data += socket.readByte();
}
trace("data "+ data);
나는 "0124661171161161111109579756184114117101124-1"또는 숫자의 유사한 무리로 추적을 얻을에 @t에 의해 주어진 코드를 수정했습니다. 이 코드를 각각의 문자로 변환 할 생각은 없습니까?
'socket.writeBytes (stream, 0, 0);'라인은 아무 쓸모가 없다. 아무 것도 보내지 않는다. 처음부터 아무 것도 보내지 않았기 때문에 서버에서 데이터를 가져 오지 못하는 것일 수 있습니다. (그것은 어떤 종류의 서버인지에 달려있다). – SSpoke