Exemplo n.º 1
0
        public void ListenServerBroadcast(object Handler)
        {
            this.FPReady = (EventWaitHandle)Handler;
            try
            {
                client = new TcpClient(ServerIP, port);
                stream = client.GetStream();
                formatter.Serialize(stream, NetCodes["getStream"]);
                int    bufferSize = sizeof(int);
                byte[] dataBuffer = new byte[bufferSize];
                int[]  data       = { };
                int[]  msgLen     = { }; // array with one elem -- length in bytes
                int    chunkLen   = 0;
                while (true)
                {
                    // get message length in bytes
                    stream.Read(dataBuffer, 0, sizeof(int));
                    msgLen = new int[1];
                    Buffer.BlockCopy(dataBuffer, 0, msgLen, 0, sizeof(int));

                    // get message
                    dataBuffer = new byte[msgLen[0] * sizeof(int)];
                    chunkLen   = stream.Read(dataBuffer, 0, dataBuffer.Length);
                    data       = new int[chunkLen / sizeof(int)];
                    Buffer.BlockCopy(dataBuffer, 0, data, 0, chunkLen);

                    // if (need_to_skip_frame) { data = new int[0]; } // and better do this before reading from stream
                    ThreadMaster.UpcomingGeneration = data;
                    FPReady.WaitOne();
                    ThreadMaster.ResumeFieldProcessing();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                client.Close();
            }
        }
Exemplo n.º 2
0
        private void FieldClick(object sender, MouseButtonEventArgs e)
        {
            Point p = e.GetPosition(this);

            ThreadMaster.Send2Srv((int)p.X, (int)p.Y, gliderDir);
        }
Exemplo n.º 3
0
 private void Connect(object sender, RoutedEventArgs e)
 {
     MessageBox.Show("Connecting to " + targetIP);
     ThreadMaster.RUN(field, Dispatcher, targetIP, login, password);
 }