/// <summary> /// /// </summary> /// <param name="isReplay">Set true if this is client is connected to a replayFile</param> /// <param name="replayStream"></param> /// <exception cref="System.ArgumentOutOfRangeException" /> /// <exception cref="System.Net.Sockets.SocketException" /> public void Start(Stream recordStream = null, LoginToken? token = null) { IPEndPoint ep = new IPEndPoint(IPAddress.Parse(IpString), PortNumber); TcpClient client = new TcpClient(); client.Connect(ep); NetworkStream stream = client.GetStream(); receiver = new ItemReceiver(stream, recordStream); sender = new ItemSender(stream); if (token != null) { sender.Send((LoginToken)token); sender.Flush(); } commId = 0; }
public void StartReplay(Stream replayStream) { receiver = new ItemReceiver(replayStream); this.replayStream = replayStream; sender = new ItemSender(Stream.Null); commId = 0; ReplayController = new Utils.ReplayController(); ReplayController.EvenDelays = true; }
/// <summary> /// /// </summary> /// <exception cref="System.ArgumentOutOfRangeException" /> /// <exception cref="System.Net.Sockets.SocketException" /> public void Start(bool isReplay = false, Stream replayStream = null) { this.isReplay = isReplay; replayFile = replayStream; if (isReplay) { receiver = new ItemReceiver(replayFile); sender = new ItemSender(Stream.Null); } else { IPEndPoint ep = new IPEndPoint(IPAddress.Parse(IpString), PortNumber); TcpClient client = new TcpClient(); client.Connect(ep); NetworkStream stream = client.GetStream(); receiver = new ItemReceiver(stream, replayFile); sender = new ItemSender(stream); } commId = 0; }
public void StartReplay(Stream replayStream) { receiver = new ItemReceiver(replayStream); sender = new ItemSender(Stream.Null); commId = 0; }
/// <summary> /// /// </summary> /// <param name="isReplay">Set true if this is client is connected to a replayFile</param> /// <param name="replayStream"></param> /// <exception cref="System.ArgumentOutOfRangeException" /> /// <exception cref="System.Net.Sockets.SocketException" /> public void Start(Stream recordStream = null) { IPEndPoint ep = new IPEndPoint(IPAddress.Parse(IpString), PortNumber); TcpClient client = new TcpClient(); client.Connect(ep); NetworkStream stream = client.GetStream(); receiver = new ItemReceiver(stream, recordStream); sender = new ItemSender(stream); commId = 0; }
private void ServerThread(ServerHandler handler) { ItemReceiver r = new ItemReceiver(handler.stream); game.RegisterCurrentThread(); while (true) { object o; do { o = r.Receive(); if (o == null) return; } while (HandleInterrupt(o)); handler.semAccess.WaitOne(); handler.queueIn.Enqueue(o); handler.semAccess.Release(1); handler.semIn.Release(1); } }
private void ServerThread(Stream stream, Semaphore semWake, Semaphore semAccess, Queue<object> queueIn) { ItemReceiver r = new ItemReceiver(stream); game.RegisterCurrentThread(); while (true) { object o; do { o = r.Receive(); if (o is int) { Trace.TraceInformation("{0} Received a {1}", Thread.CurrentThread.Name, (int)o); } { Trace.TraceInformation("{0} Received a {1}", Thread.CurrentThread.Name, o.GetType().Name); } } while (HandleInterrupt(o)); semAccess.WaitOne(); queueIn.Enqueue(o); semAccess.Release(1); semWake.Release(1); } }