私は MATLAB とそのプログラミング方法についてあまり知りませんが、AS3 側の例を示します。最初に TCP/IP 通信を使用する場合は、サーバーとクライアントを定義する必要があります。ServerSocket クラスは Flash 側の AIR アプリケーションでのみサポートされるため、Flash 側をサーバーにするかクライアントにするかを決定する必要があります。サーバーにしたい場合は、次のように書く必要があります。
const IP_ADDRESS:String = "127.0.0.1"; //for local hosting
const PORT:uint = 3444; //basically, you can take any port you want, but higher would be better so that it won't have issues with other programs using ports.
var OurServerSocket:ServerSocket = new ServerSocket();
var ConnectedSocket:Socket;
OurServerSocket.addEventListener(ServerSocketConnectEvent.CONNECT, HandleSocketConnection); //adding listener for socket connections, that we'll handle in our method.
OurServerSocket.bind(PORT, IP_ADRESS); //just binding our socket to the IP and port that we defined
OurServerSocket.listen();
function HandleSocketConnection(e:ServerSocketConnectEvent):void
{
ConnectedSocket = e.socket; //just saving connected socket instance
ConnectedSocket.addEventListener(ProgressEvent.SOCKET_DATA, HandleSocketData); //adding listener to handle any data that comes through our connected socket
trace("Connected: " + ConnectedSocket.remoteAddress);
}
function HandleSocketData(e:ProgressEvent):void
{
var socket:Socket = e.target as Socket;
var bytes:ByteArray = new ByteArray();
socket.readBytes(bytes,0,0);
var Data:String = bytes.toString(); //when the data comes in we store it in this string so that you can than manipulate easily
}
//use this function to send data through the connected socket
function WriteToSocket(data:String):void
{
var dataArray:ByteArray = new ByteArray();
dataArray.writeMultiByte(data, "utf-8");
ConnectedSocket.writeBytes(dataArray);
}
Flash 側のクライアントを決定する場合は、次のようにサーバーに接続します。
var SocketConnection:Socket = new Socket();
SocketConnection.connect(IP_ADDRESS, PORT);
そうすれば、書き込みと読み取りに同じ方法を使用して通信できます。