示例#1
0
 public void sendToPython(SendDataPacket packet)
 {
     if (!netStream.CanWrite)
     {
         throw new Exception("stream write to python server failed!");
     }
     packet.tobyte(buffer1);
     netStream.Write(buffer1, 0, SendDataPacket.Length);
 }
        private void AsyncReceiveProxy(IAsyncResult ar)
        {
            try
            {
                int received = Socket.EndReceive(ar);

                if (_isDisposed)
                {
                    return;
                }

                if (received <= 0)
                {
                    Disconnect();
                    return;
                }

                BytesReceived += received;

                byte[] payload = new byte[received];
                Array.Copy(_buffer, payload, received);
                SendDataPacket?.Invoke(this, payload);

                BytesSent += payload.Length;
                PacketsSent++;
            }
            catch
            {
                Disconnect();
                return;
            }

            PacketsReceived++;

            //Server.CallonUpdateConnection(this);

            try
            {
                Socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, AsyncReceiveProxy, null);
            }
            catch
            {
                // ignored
            }
        }