2011-03-23 108 views
2

我一直想讓閃存接收來自我擁有的小型串行到IP轉換器的TCP消息。使用其他軟件,我可以看到消息通過,所以我知道它有效。 從閃存我嘗試過使用一個套接字和一個XML套接字,但我不知道我在做什麼,我設法得到一個連接,但它似乎不輸出數據,或觸發事件時數據被接收。 不知道我對此有正確的方式,任何幫助將不勝感激。TCP客戶端閃存AS3

感謝

+0

是您的服務器在線運行還是本地運行?如果它在線,讓我知道URI和端口,然後我會發佈一個片段,前一天寫了一個簡單的TCP客戶端,所以不應該爲你寫一個片段。 – Zevan 2011-03-23 17:38:13

+1

查看[本教程](http://gotoandlearn.com/play.php?id=69)關於二進制套接字的基礎知識。這個例子適用於pop服務器,但概念很相似。 – Sam 2011-03-23 18:15:03

+0

它在本地運行,它只是其中一個:以TCP模式運行的http://tibbo.com/products/controllers/ds203.html。我將通讀這篇教程和文章,並讓大家知道它是否將它整理出來。謝謝! – 2011-03-24 09:10:59

回答

3

以下是我用於使其工作的代碼。謝謝你們的幫助。

import flash.events.Event; 
import flash.events.ProgressEvent; 
import flash.net.Socket; 

var RFIDSocket:Socket = new Socket(RFIDSocketIP,RFIDSocketPort); 

RFIDSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketData); 

private function socketData(e:ProgressEvent):void { 
     var rawData:String = RFIDSocket.readUTFBytes(RFIDSocket.bytesAvailable); 
     var RFIDData:String = RFIDData.substring(1,11); 
     if(debugMode){ 
      MonsterDebugger.trace(this, RFIDData); 
     } 
     RFIDSocket.flush(); 
} 
1

我的猜測是,你很可能擊中的安全限制。 Flash需要通過套接字連接到任何服務器的權限,它會在端口843上尋找權限,以及用於繞過它的一些示例代碼。如果您無法直接訪問您嘗試連接的服務器,則可能需要使用代理服務器進行探索。