如何与c#程序建立流连接

本文关键字:建立 流连 连接 程序 | 更新日期: 2023-09-27 18:08:01

我正在尝试为AIR应用程序创建代理。我现在想做的是在c#程序(我很确定我已经破解了这方面的东西)和AS3 AIR程序之间建立连接。

关于这一点,我真的不确定我在做什么,我已经找到了网络类,我正在尝试创建一个新的NetConnection并将其馈送到NetStream。

我需要做的是能够从我的c#代理启动我的AS3应用程序(我再次得到了排序,我认为)。然后我需要在两者之间建立连接,并交换一些类似"Hello"的东西。在此之后,我将可以对事情进行排序,但它只是建立这个流连接,以允许我最终发送命令和响应。

可悲的是,AS3现在看起来已经死了,所以找到帮助并不容易!

如何与c#程序建立流连接

如有任何建议或指导,不胜感激。

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();
    }

这段代码没有做太多的事情,但它是一个完美的框架。希望它对某人有用,如果不是,当我再次需要它的时候!