コード例 #1
0
 /// <summary>
 /// Initializes a new FileTransferConnection
 /// </summary>
 public FileTransferConnection(Session parent, int id, DirectConnectionMethod dcmethod, DirectConnectRole role)
     : base(parent, id, dcmethod, role)
 {
     Logging.WriteString("Creating new FTC (id " + id.ToString() + ")");
     base.DirectConnectionFailed += new DirectConnectionFailed(FileTransferConnection_DirectConnectionFailed);
     base.DirectConnectionReady += new DirectConnectionReady(FileTransferConnection_DirectConnectionReady);
 }
コード例 #2
0
        /// <summary>
        /// Creates a new Direct Connection
        /// </summary>
        /// <param name="parent">The <see cref="Session"/> that owns this connection</param>
        /// <param name="id">The connection's unique ID</param>
        /// <param name="dcmethod">The method (direct or proxied) that the connection is to use</param>
        /// <param name="role">The role of this connection in a Rendezvous session</param>
        public DirectConnection(Session parent, int id,
                                DirectConnectionMethod dcmethod, DirectConnectRole role)
            : base(parent, id)
        {
            directConnectionMethod = dcmethod;
            directConnectRole      = role;

            // Generate a random ICBM cookie
            Cookie = Cookie.CreateNullTerminatedCookieForSending();

            // Get the local IP

            //ClientIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].ToString();
            IPAddress[] addresses = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
            foreach (IPAddress address in addresses)
            {
                if (address.AddressFamily == AddressFamily.InterNetwork)
                {
                    ClientIP = address.ToString();
                    break;
                }
            }

            if (String.IsNullOrEmpty(ClientIP))
            {
                throw new Exception("Local host does not have an IPv4 address bound to it");
            }
        }
コード例 #3
0
ファイル: ConnectionManager.cs プロジェクト: saroj82/OscarLib
        public ChatInvitationConnection CreateNewChatInvitationConnection(DirectConnectRole role)
        {
            ChatInvitationConnection retval = new ChatInvitationConnection(_parent, _id++, role);

            _directconnections.Add(retval);
            return(retval);
        }
コード例 #4
0
ファイル: ConnectionManager.cs プロジェクト: saroj82/OscarLib
        /// <summary>
        /// Creates a new file transfer connection
        /// </summary>
        /// <param name="method">The <see cref="DirectConnectionMethod"/> to use for the transfer</param>
        /// <param name="role">The <see cref="DirectConnectRole"/> of the local client in the transfer</param>
        public FileTransferConnection CreateNewFileTransferConnection(DirectConnectionMethod method,
                                                                      DirectConnectRole role)
        {
            FileTransferConnection retval = new FileTransferConnection(_parent, _id++, method, role);

            _directconnections.Add(retval);
            return(retval);
        }
コード例 #5
0
ファイル: DirectConnection.cs プロジェクト: pkt30/OscarLib
        /// <summary>
        /// Creates a new Direct Connection
        /// </summary>
        /// <param name="parent">The <see cref="Session"/> that owns this connection</param>
        /// <param name="id">The connection's unique ID</param>
        /// <param name="dcmethod">The method (direct or proxied) that the connection is to use</param>
        /// <param name="role">The role of this connection in a Rendezvous session</param>
        public DirectConnection(Session parent, int id,
                                DirectConnectionMethod dcmethod, DirectConnectRole role)
            : base(parent, id)
        {
            directConnectionMethod = dcmethod;
            directConnectRole = role;

            // Generate a random ICBM cookie
            Cookie = Cookie.CreateNullTerminatedCookieForSending();

            // Get the local IP

            //ClientIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].ToString();
            IPAddress[] addresses = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
            foreach (IPAddress address in addresses)
            {
                if (address.AddressFamily == AddressFamily.InterNetwork)
                {
                    ClientIP = address.ToString();
                    break;
                }
            }

            if (String.IsNullOrEmpty(ClientIP))
            {
                throw new Exception("Local host does not have an IPv4 address bound to it");
            }
        }
コード例 #6
0
ファイル: ConnectionManager.cs プロジェクト: pkt30/OscarLib
 /// <summary>
 /// Creates a new file transfer connection
 /// </summary>
 /// <param name="method">The <see cref="DirectConnectionMethod"/> to use for the transfer</param>
 /// <param name="role">The <see cref="DirectConnectRole"/> of the local client in the transfer</param>
 public FileTransferConnection CreateNewFileTransferConnection(DirectConnectionMethod method,
                                                               DirectConnectRole role)
 {
     FileTransferConnection retval = new FileTransferConnection(_parent, _id++, method, role);
     _directconnections.Add(retval);
     return retval;
 }
コード例 #7
0
ファイル: ConnectionManager.cs プロジェクト: pkt30/OscarLib
 /// <summary>
 /// Creates a new DirectIM connection
 /// </summary>
 /// <param name="method">The <see cref="DirectConnectionMethod"/> to use for the transfer</param>
 /// <param name="role">The <see cref="DirectConnectRole"/> of the local client in the transfer</param>
 public DirectIMConnection CreateNewDirectIMConnection(DirectConnectionMethod method, DirectConnectRole role)
 {
     DirectIMConnection retval = new DirectIMConnection(_parent, _id++, method, role);
     _directconnections.Add(retval);
     return retval;
 }
コード例 #8
0
ファイル: ConnectionManager.cs プロジェクト: pkt30/OscarLib
 public ChatInvitationConnection CreateNewChatInvitationConnection(DirectConnectRole role)
 {
     ChatInvitationConnection retval = new ChatInvitationConnection(_parent, _id++, role);
     _directconnections.Add(retval);
     return retval;
 }
コード例 #9
0
ファイル: ConnectionManager.cs プロジェクト: saroj82/OscarLib
        /// <summary>
        /// Creates a new DirectIM connection
        /// </summary>
        /// <param name="method">The <see cref="DirectConnectionMethod"/> to use for the transfer</param>
        /// <param name="role">The <see cref="DirectConnectRole"/> of the local client in the transfer</param>
        public DirectIMConnection CreateNewDirectIMConnection(DirectConnectionMethod method, DirectConnectRole role)
        {
            DirectIMConnection retval = new DirectIMConnection(_parent, _id++, method, role);

            _directconnections.Add(retval);
            return(retval);
        }
コード例 #10
0
ファイル: ChatConnection.cs プロジェクト: saroj82/OscarLib
 public ChatInvitationConnection(Session parent, int id, DirectConnectRole role)
     : base(parent, id, DirectConnectionMethod.Direct, role)
 {
 }
コード例 #11
0
ファイル: ChatConnection.cs プロジェクト: pkt30/OscarLib
 public ChatInvitationConnection(Session parent, int id, DirectConnectRole role)
     : base(parent, id, DirectConnectionMethod.Direct, role)
 {
 }
コード例 #12
0
ファイル: DirectIMConnection.cs プロジェクト: pkt30/OscarLib
 /// <summary>
 /// Initializes a new DirectIMConnection
 /// </summary>
 public DirectIMConnection(Session parent, int id, DirectConnectionMethod method, DirectConnectRole role)
     : base(parent, id, method, role)
 {
     _messagetimer = new Timer(new TimerCallback(MessageSendCallback), null, Timeout.Infinite, Timeout.Infinite);
     base.DirectConnectionReady += new DirectConnectionReady(DirectIMConnection_DirectConnectionReady);
     base.DirectConnectionFailed += new DirectConnectionFailed(DirectIMConnection_DirectConnectionFailed);
 }
コード例 #13
0
 /// <summary>
 /// Initializes a new FileTransferConnection
 /// </summary>
 public FileTransferConnection(Session parent, int id, DirectConnectionMethod dcmethod, DirectConnectRole role)
     : base(parent, id, dcmethod, role)
 {
     Logging.WriteString("Creating new FTC (id " + id.ToString() + ")");
     base.DirectConnectionFailed += new DirectConnectionFailed(FileTransferConnection_DirectConnectionFailed);
     base.DirectConnectionReady  += new DirectConnectionReady(FileTransferConnection_DirectConnectionReady);
 }
コード例 #14
0
 /// <summary>
 /// Initializes a new DirectIMConnection
 /// </summary>
 public DirectIMConnection(Session parent, int id, DirectConnectionMethod method, DirectConnectRole role)
     : base(parent, id, method, role)
 {
     _messagetimer = new Timer(new TimerCallback(MessageSendCallback), null, Timeout.Infinite, Timeout.Infinite);
     base.DirectConnectionReady  += new DirectConnectionReady(DirectIMConnection_DirectConnectionReady);
     base.DirectConnectionFailed += new DirectConnectionFailed(DirectIMConnection_DirectConnectionFailed);
 }