EncodeClientName() 공개 정적인 메소드

Encode a client name.
public static EncodeClientName ( string name ) : byte[]
name string
리턴 byte[]
예제 #1
0
        /// <summary>
        /// Connect to a kRPC server on the specified IP address and port numbers. If
        /// streamPort is 0, does not connect to the stream server.
        /// Passes an optional name to the server to identify the client (up to 32 bytes of UTF-8 encoded text).
        /// </summary>
        public Connection(string name = "", IPAddress address = null, int rpcPort = 50000, int streamPort = 50001)
        {
            if (address == null)
            {
                address = IPAddress.Loopback;
            }

            rpcClient = new TcpClient();
            rpcClient.Connect(address, rpcPort);
            var rpcStream = rpcClient.GetStream();

            rpcStream.Write(Encoder.rpcHelloMessage, 0, Encoder.rpcHelloMessage.Length);
            var clientName = Encoder.EncodeClientName(name);

            rpcStream.Write(clientName, 0, clientName.Length);
            var clientIdentifier = new byte[Encoder.clientIdentifierLength];

            rpcStream.Read(clientIdentifier, 0, Encoder.clientIdentifierLength);

            if (streamPort == 0)
            {
                StreamManager = null;
            }
            else
            {
                StreamManager = new StreamManager(this, address, streamPort, clientIdentifier);
            }
        }
예제 #2
0
파일: Connection.cs 프로젝트: zentarul/krpc
        public Connection(string name = "", IPAddress address = null, int rpcPort = 50000, int streamPort = 50001)
        {
            if (address == null)
            {
                address = IPAddress.Loopback;
            }

            rpcClient = new TcpClient();
            rpcClient.Connect(address, rpcPort);
            rpcStream = rpcClient.GetStream();
            rpcStream.Write(Encoder.RPCHelloMessage, 0, Encoder.RPCHelloMessage.Length);
            var clientName = Encoder.EncodeClientName(name);

            rpcStream.Write(clientName, 0, clientName.Length);
            var clientIdentifier = new byte[Encoder.ClientIdentifierLength];

            rpcStream.Read(clientIdentifier, 0, Encoder.ClientIdentifierLength);
            codedRpcStream = new CodedOutputStream(rpcStream, true);

            if (streamPort != 0)
            {
                streamClient = new TcpClient();
                streamClient.Connect(address, streamPort);
                var streamStream = streamClient.GetStream();
                streamStream.Write(Encoder.StreamHelloMessage, 0, Encoder.StreamHelloMessage.Length);
                streamStream.Write(clientIdentifier, 0, clientIdentifier.Length);
                var recvOkMessage = new byte [Encoder.OkMessage.Length];
                streamStream.Read(recvOkMessage, 0, Encoder.OkMessage.Length);
                if (!recvOkMessage.SequenceEqual(Encoder.OkMessage))
                {
                    throw new InvalidOperationException("Did not receive OK message from server");
                }
                StreamManager = new StreamManager(this, streamClient);
            }
        }