我想将node.js中的数据发送到C#

时间:2015-04-10 12:38:57

标签: c# node.js sockets

我使用node.js服务器处理Asterisk ami 我想实时从[node.js服务器]向C#客户端发送数据 的 server.js

var app = require('http').createServer().listen(3001);
    var io = require('socket.io').listen(app);

    var AsteriskAmi = require('asterisk-ami');


       var ami = new AsteriskAmi( { host: '127.0.0.1', username: 'admin', password: '123456' } );

    io.sockets.on('connection', function(socket) {
        socket.emit('notification', {message: "connected"});
    });


    ami.on('ami_data', function(data) {
        io.sockets.emit('ami_event', data);
        // or the same
        // io.emit('ami_event', data);
    });

    ami.connect(function(){
    });


C#sharp client
    使用系统;     使用System.IO;     使用System.Net;     使用System.Net.Sockets;     使用System.Text;

class MyTcpListener
{
    public static void Main()
    {
        TcpListener server = null;
        try
        {
            // Set the TcpListener on port 13000.
            Int32 port = 3001;
            IPAddress localAddr = IPAddress.Parse("127.0.0.1");

            // TcpListener server = new TcpListener(port);
            server = new TcpListener(localAddr, port);

            // Start listening for client requests.
            server.Start();

            // Buffer for reading data
            Byte[] bytes = new Byte[256];
            String data = null;

            // Enter the listening loop. 
            while (true)
            {
                Console.Write("Waiting for a connection... ");

                // Perform a blocking call to accept requests. 
                // You could also user server.AcceptSocket() here.
                TcpClient client = server.AcceptTcpClient();
                Console.WriteLine("Connected!");

                data = null;

                // Get a stream object for reading and writing
                NetworkStream stream = client.GetStream();

                int i;

                // Loop to receive all the data sent by the client. 
                while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                {
                    // Translate data bytes to a ASCII string.
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                    Console.WriteLine("Received: {0}", data);

                    // Process the data sent by the client.
                    data = data.ToUpper();

                    byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

                    // Send back a response.
                    stream.Write(msg, 0, msg.Length);
                    Console.WriteLine("Sent: {0}", data);
                }

                // Shutdown and end connection
                //client.Close();
            }
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketException: {0}", e);
        }
        finally
        {
            // Stop listening for new clients.
            server.Stop();
        }


        Console.WriteLine("\nHit enter to continue...");
        Console.Read();
    }
}

0 个答案:

没有答案