如何与c#程序建立流连接
本文关键字:建立 流连 连接 程序 | 更新日期: 2023-09-27 18:08:01
我正在尝试为AIR应用程序创建代理。我现在想做的是在c#程序(我很确定我已经破解了这方面的东西)和AS3 AIR程序之间建立连接。
关于这一点,我真的不确定我在做什么,我已经找到了网络类,我正在尝试创建一个新的NetConnection并将其馈送到NetStream。
我需要做的是能够从我的c#代理启动我的AS3应用程序(我再次得到了排序,我认为)。然后我需要在两者之间建立连接,并交换一些类似"Hello"的东西。在此之后,我将可以对事情进行排序,但它只是建立这个流连接,以允许我最终发送命令和响应。
可悲的是,AS3现在看起来已经死了,所以找到帮助并不容易!
AS3 AIR应用程序是否有某种配置文件,您可以在其中设置IP地址,端口等?
如果是,你可以尝试建立一个TCP连接到应用程序。
这里是一个快速和简短的示例代码,让你开始尝试TCP连接到该应用程序,并接收数据:
IPAddress address = IPAddress.Parse("10.0.0.2");
IPEndPoint endPoint = new IPEndPoint(address, 3999);
TcpClient client = new TcpClient();
client.Connect(endPoint);
if (client.Connected)
{
NetworkStream stream = client.GetStream();
//use this stream for communication
}
这应该会让你开始。我还没有测试过错误捕获等,你应该看看异步方法,但这将让你开始。
看看这个!
整理好了,一切正常!
我使用的方法(但不是唯一的方法)是使用套接字服务器设置。
我使用c#创建了一个打开套接字,并准备好接收UTF流。
然后我在一个虚拟项目中用AS3创建了一个简单的小套接字,这是用这些代码块完成的: socket = new Socket();
socket.addEventListener(Event.CONNECT, onConnection);
socket.addEventListener(Event.CLOSE, onClose);
socket.addEventListener(IOErrorEvent.IO_ERROR, onError);
socket.addEventListener(ProgressEvent.SOCKET_DATA, dataIn);
if (host && port) {
socket.connect(host, port);
}
然后我有几个小的事件处理程序方法,它们是:
private function onConnection(e:Event):void {
var messageOut:String;
messageOut = "Ready";
trace("sending: " + messageOut);
socket.writeUTFBytes(messageOut.toString());
socket.flush();
}
private function onClose(e:Event):void {
socket.close();
trace("Socket closed");
}
private function dataIn(e:ProgressEvent):void {
var messageIn;
}
private function onError(e:IOErrorEvent):void {
trace("There was an error: " + e.toString());
socket.close();
}
这段代码没有做太多的事情,但它是一个完美的框架。希望它对某人有用,如果不是,当我再次需要它的时候!