static void Main(string[] args)
{
IPEndPoint p = new IPEndPoint(IPAddress.Parse("192.168.0.107"), 11000
Socket sok = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sok.Connect(p);
NetworkStream s= new NetworkStream(sok);
var f = Observable.FromAsyncPattern(s.BeginRead, s.EndRead);
byte[] b = new byte[60];
var obs2 = Observable.While(() => s.DataAvailable, Observable.Defer(() => f(b, 0, 60)));
Thread.Sleep(5000);
obs2.Subscribe(x =>
{
Thread.Sleep(1000);
char[] cs = Encoding.UTF7.GetChars(b, 0, x);
Console.WriteLine("out" + new string(cs));
});
Console.ReadLine();
}
Note that FromAsyncPattern is marked obsolete.
Socket Server stream out data:
static void Main(string[] args)
{
byte[] bytes = new Byte[1024];
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);
// Create a TCP/IP socket.
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
try
{
listener.Bind(localEndPoint);
listener.Listen(10);
// Start listening for connections.
Console.WriteLine("Waiting for a connection...");
Socket handler = listener.Accept();
while (true)
{
Thread.Sleep(1000);
string s = "Data @ " + DateTime.Now.ToString();
Console.WriteLine("sending..." +s);
byte[] msg = Encoding.ASCII.GetBytes(s);
handler.Send(msg);
}
handler.Shutdown(SocketShutdown.Both);
handler.Close();
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine("\nPress ENTER to continue...");
Console.Read();
}
}
Blog Archive
Saturday, September 7, 2013
Converting stream to Observable through Async Pattern
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment