コード例 #1
0
        public void Process()
        {
            MemoryStream mem = new MemoryStream();// Empfangspuffer

            byte[] buffer  = new byte[BufferSize];
            int    TimeOut = 0;

            instanceOfClass.NewMessage("Server gestartet");
            while (TimeOut < (10 * 1000 / SleepTime))
            {
                mem.Seek(0, SeekOrigin.Begin);
                mem.SetLength(0);
                while (socket.Available > 0)
                {
                    //Byte[] buffer = new byte[bytesAvailable];
                    int bytesRead = socket.Receive(buffer, buffer.Length, SocketFlags.None);
                    if (bytesRead <= 0)
                    {
                        continue;
                    }
                    mem.Write(buffer, 0, bytesRead);
                    //instanceOfClass.Receive(buffer);
                    // Alles zurücksetzen
                }
                if (mem.Length > 0)
                {
                    if (mem.Length == 4)
                    {
                        if (System.Text.Encoding.ASCII.GetString(mem.ToArray(), 0, 4) == "quit")
                        {
                            instanceOfClass.CloseConnection();
                            break;
                        }
                    }
                    //Console.WriteLine("send {0} bytes",mem.Length);
                    instanceOfClass.Receive(mem.ToArray());
                    mem.Seek(0, SeekOrigin.Begin);
                    mem.SetLength(0);
                    TimeOut = 0;
                }
                else
                {
                    TimeOut++;
                    Thread.Sleep(SleepTime);
                }
            }
            instanceOfClass.CloseConnection();
            socket.Close();
            socket = null;
            serverThread.Abort();
        }