相关疑难解决方法(0)

使用Reactive Extensions(Rx)实现套接字编程?

GetMessages使用Rx 编写函数的最简洁方法是什么:

static void Main()
{
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    var messages = GetMessages(socket, IPAddress.Loopback, 4000);
    messages.Subscribe(x => Console.WriteLine(x));

    Console.ReadKey();
}

static IObservable<string> GetMessages(Socket socket, IPAddress addr, int port)
{
    var whenConnect = Observable.FromAsyncPattern<IPAddress, int>(socket.BeginConnect, socket.EndConnect)(addr, port);

    // now will receive a stream of messages
    // each message is prefixed with an 4 bytes/Int32 indicating it's length. 
    // the rest of the message is a string

    // ????????????? Now What ????????????? 
}
Run Code Online (Sandbox Code Playgroud)

一个简单的服务器作为上述示例的驱动程序:http://gist.github.com/452893#file_program.cs …

.net c# sockets system.reactive

20
推荐指数
2
解决办法
8104
查看次数

标签 统计

.net ×1

c# ×1

sockets ×1

system.reactive ×1