Example #1
0
        public SocketMessage Connect(string host, int port, SocketProtocolType protocolType)
        {
            int connectionID = MakeUUID();

            try
            {
                var connection = MakeConnection(protocolType);
                connection.HandleMessage = PushMessage;
                connection.Socket.Connect(host, port);
                connection.ConnectionID = connectionID;
                connections.Add(connectionID, connection);

                connection.Start();

                return(new SocketMessage(connectionID, SocketMessageType.Connect, (Buffer)null, 0));
            }
            catch (SocketException se)
            {
                return(new SocketMessage(0, SocketMessageType.Error, BaseConnection.GetErrorMessage(se), 0));
            }
            catch (Exception e)
            {
                return(new SocketMessage(0, SocketMessageType.Error, BaseConnection.GetErrorMessage(e), 0));
            }
        }
Example #2
0
        public void AsyncConnect(string host, int port, SocketProtocolType protocolType, int sessionid)
        {
            var connectionID = Guid.NewGuid().ToString();

            try
            {
                var connection = MakeConnection(protocolType);
                connection.HandleMessage = PushMessage;
                connection.ConnectionID  = connectionID;
                var socket = connection.Socket;
                socket.BeginConnect(host, port, (ar) =>
                {
                    try
                    {
                        connections.Add(connectionID, connection);
                        var s = (System.Net.Sockets.Socket)ar.AsyncState;
                        s.EndConnect(ar);
                        PushMessage(new SocketMessage(connectionID, SocketMessageType.Connect, (Buffer)null, sessionid));
                        connection.Start();
                    }
                    catch (SocketException se)
                    {
                        PushMessage(new SocketMessage("", SocketMessageType.Connect, BaseConnection.GetErrorMessage(se), sessionid));
                    }
                    catch (Exception e)
                    {
                        PushMessage(new SocketMessage("", SocketMessageType.Connect, BaseConnection.GetErrorMessage(e), sessionid));
                    }
                }, socket);
            }
            catch (SocketException se)
            {
                connections.Remove(connectionID);
                PushMessage(new SocketMessage("", SocketMessageType.Connect, BaseConnection.GetErrorMessage(se), sessionid));
            }
            catch (Exception e)
            {
                connections.Remove(connectionID);
                PushMessage(new SocketMessage("", SocketMessageType.Connect, BaseConnection.GetErrorMessage(e), sessionid));
            }
        }