Beispiel #1
0
        private Socket NewSocket()
        {
            _connection?.Disconnect(null);
            _connection = null;

            return(Protocol == TransportProtocol.IPv6 ? new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp) : new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp));
        }
Beispiel #2
0
        private void SetupConnection(Socket s)
        {
            SetTcpKeepAlive(s);

            EndPoint    = (IPEndPoint)s.RemoteEndPoint;
            _connection = new InternalSecureSocketConnectedClient(s, _packager);
            _connection.BeginReceive(ReceiveHandler);
            _connection.OnDisconnect += Connection_OnDisconnect;
        }
Beispiel #3
0
        public bool Connect(string host, int port)
        {
            Socket sock = NewSocket();

            try {
                sock.Connect(host, port);
                SetupConnection(sock);
                return(true);
            } catch {
                _connection = null;
                return(false);
            }
        }
Beispiel #4
0
        private void TcpSock_OnClientConnect(BaseServerSocket sender, Socket s)
        {
            InternalSecureSocketConnectedClient client = new InternalSecureSocketConnectedClient(s, _packager);

            client.SetId(_guidGenerator());
            client.BeginReceive(ReceiveHandler);
            client.Send(cl => {
                Clients.Add(cl);
                client.OnDisconnect += (c, err) => {
                    Clients.Remove(c);
                };

                OnClientConnect?.Invoke(this, cl);
            }, new HandshakePacket(true, client.Id));
        }
Beispiel #5
0
 private void ReceiveHandler(InternalSecureSocketConnectedClient client, IPacket data)
 {
     _callbacks.Handle(this, data);
 }