這裏有一點問題。AS3服務器套接字,進度事件,readutfbytes
我工作的多人遊戲與Flash,並使用python對事物的服務器端。我有套接字連接工作... sorta,和相當多的python工作,但我遇到了一個奇怪的問題。
比方說,在登錄,我發送一些數據包含他們的一些信息的客戶端。 之後,我發送一些數據將它們分配到一個房間。
似乎這個數據在AS3中不應該被理解成兩個不同的東西,相反,readUTFBytes後,它是所有在相同的字符串。
var str:String = event.currentTarget.readUTFBytes(event.currentTarget.bytesAvailable);
在蟒蛇,我已經定義的方法來發送數據,這只是通過transport.write(雙絞線)發送數據,而我通過在動作腳本進度插座數據事件receieving。任何想法在這裏可能是錯的?這裏有一些代碼...
if (! event.currentTarget.bytesAvailable > 0) {
return;
}
var str:String = event.currentTarget.readUTFBytes(event.currentTarget.bytesAvailable);
var Char1:String = str.charAt(0);
var Char2:String = str.charAt(1);
str = str.replace(Char1, "");
str = str.replace(Char2, "");
// Various messages
if (Char1 == "\x03") {
if (Char2 == "\x03") {
trace("Got ping thread");
}
else {
trace("x03 but no secondary prefix handled");
}
return;
}
很潦草我知道,但我試圖只是確定一個問題。
的所有數據都帶有兩個前綴,像\ X02和\ x09表示我決定做什麼,然後在字符串中的大部分數據被分割在\ X01得到的值。
問題本質上是,我應該得到一個/ x08/x08數據,我得到/ x08/x08 data/x05/x03數據,當它應該是兩個單獨的東西。
謝謝,這清理了很多。有人還建議使用終止符,但我想我想先學習更復雜的方法。再次感謝! – WeaponsTheyFear
很高興幫助。由於您發現答案有用,因此您可能需要單擊複選標記以接受答案。 :) –
+1用於消息長度的前綴,並在as3端執行自己的分割。 as3插座不是很好 – divillysausages