簡體   English   中英

通過Flex中的Socket發送就緒信號

[英]Sending Ready Signal through Socket in flex

我正在開發AIR項目以在Flex中進行機器集成。 在一台機器上,我的應用程序確實運行良好,可以根據需要從該機器接收數據。 在第二篇文章中,我認為這就像我們必須向機器發送“ READY”類關閉信號一樣,對於該機器我們將獲得“ ACK”作為回報(握手),然后僅開始通信。

如何使用Socket從ActionAcript發送此“ READY”信號。

我的ActionScript類文件將如下所示。

protected var socket:Socket;
public function init():void
{
    socket = new Socket;
    socket.addEventListener(Event.CONNECT, onConnect);
    socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
    socket.addEventListener(Event.CLOSE, onClose);
}

/*** connect to the socket */
public function connect():void
{
    if(socket.connected)
    {
        Status = "Socket is already listening to Port " + socket.remotePort + " in " + socket.remoteAddress;
        return;
    }
    socket.connect("localhost", 5331);
}

/*** handles socket connect event */
private function onConnect(event:Event):void
{
    if(socket.connected)
        Status = "Connection established successfully from " + Capabilities.os;
    else
        Status = "Connection failure!";
}

/*** manipulation of received data */
private function onSocketData(event:ProgressEvent):void
{
    //Data Recieved
}

/*** handles socket close event */
protected function onClose(event:Event):void
{
    Status = "Socket Connection is being closed..";
}

機器(KR-8900)的輸出是RS232 .. 8針mini din(男性)..而到系統是db9針(通常)..串行端口通信是通過外部工具“ SerProxy”完成的。 SerProxy將向/從機器系統發送和接收數據。 使用該應用程序,我將必須使用套接字連接到系統中的端口並執行讀取和寫入操作。

我的問題是我的onSocketData函數沒有收到任何數據。 在通信開始之前,我需要發送READY信號。由於我不知道如何在Flex中執行此操作,因此我被困在這里。 任何想法或建議都將受到熱烈歡迎。

套接字API允許您將字符串和字節寫入二進制套接字。

連接套接字后,可以執行以下操作:

socket.writeUTFBytes("READY");
socket.flush();

您必須修改此代碼,以便它可以完全發送您需要發送的內容。 您也可以使用writeByte寫入一個空(“ \\ 0”)字符或任何控制字符。

要讀取數據,您需要使用讀取方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM