我正在开发一个 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 pin mini din(男).. 系统是 db9 pin(和往常一样).. 串行端口通信由外部工具“SerProxy”完成. SerProxy 将向机器系统发送和接收数据。使用该应用程序,我必须使用 Socket 连接到系统中的端口并执行读写操作。
我的问题是我的onSocketData
函数中没有收到任何数据。在通信开始之前,我需要发送 READY 信号。我被困在这里,因为我不知道如何在 Flex 中执行此操作。任何想法或建议都受到热烈欢迎。