Пример #1
0
        public static int getIntOption0(FileDescriptor fd, bool mayNeedConversion, int level, int opt)
        {
#if FIRST_PASS
            return(0);
#else
            if (level == global::[email protected]_IPV6 && opt == global::[email protected]_TCLASS)
            {
                return(0);
            }
            System.Net.Sockets.SocketOptionLevel sol = (System.Net.Sockets.SocketOptionLevel)level;
            System.Net.Sockets.SocketOptionName  son = (System.Net.Sockets.SocketOptionName)opt;
            try
            {
                object obj = fd.getSocket().GetSocketOption(sol, son);
                System.Net.Sockets.LingerOption linger = obj as System.Net.Sockets.LingerOption;
                if (linger != null)
                {
                    return(linger.Enabled ? linger.LingerTime : -1);
                }
                return((int)obj);
            }
            catch (System.Net.Sockets.SocketException x)
            {
                if (mayNeedConversion)
                {
                    if (x.ErrorCode == global::java.net.SocketUtil.WSAENOPROTOOPT &&
                        sol == System.Net.Sockets.SocketOptionLevel.IP &&
                        son == System.Net.Sockets.SocketOptionName.TypeOfService)
                    {
                        return(0);
                    }
                }
                throw global::java.net.SocketUtil.convertSocketExceptionToIOException(x);
            }
            catch (System.ObjectDisposedException)
            {
                throw new global::java.net.SocketException("Socket is closed");
            }
#endif
        }
Пример #2
0
 /// <summary>
 /// ��ʼ������Socketͨ�Ż���
 /// </summary>
 /// <param name="localIPAddress">������ַ</param>
 /// <param name="localPort">�����˿�</param>
 /// <returns>���ز����Ƿ�ɹ�</returns>
 public bool InitSocket(System.Net.IPAddress localIPAddress, int localPort)
 {
     bool Active = false;
      IsStopServer = false;
     _Socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
     System.Net.Sockets.LingerOption option = new System.Net.Sockets.LingerOption(false, 10);
     _Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.Linger, option);
     try
     {
         if (LocalPort == 0)
         {
             Random rd = new Random();
             LocalPort = rd.Next(2000, 60000);
         }
         this.LocalIPAddress = localIPAddress;
         this.LocalPort = localPort;
         IPEndPoint ep = new IPEndPoint(LocalIPAddress, LocalPort);
         _Socket.Bind(ep);
         Active = true;
     }
     catch (Exception ex)
     {
         Active = false;
         if (OnError != null)
             OnError(this, new CSS.IM.Library.Net.SockEventArgs(5, ex.Message));
     }
     return Active;
 }
Пример #3
0
        /// <summary>
        /// ��ʼ��Socket����
        /// </summary>
        /// <param name="LocalIPAddress">������ַ</param>
        /// <param name="LocalPort">�����˿�</param>
        /// <returns>���ز����Ƿ�ɹ�</returns>
        private bool InitSocket(System.Net.IPAddress LocalIPAddress, int LocalPort)
        {
            bool Active = false;
            IsStopServer = false;

            _Socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
            System.Net.Sockets.LingerOption Option = new  System.Net.Sockets.LingerOption(false, 10);
            _Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.Linger, Option);
            try
            {
                IPEndPoint ep = new IPEndPoint(LocalIPAddress, LocalPort);
                _Socket.Bind(ep);
                Active = true;
            }
            catch (Exception ex)
            {
                Active = false;
                Error(this, new CSS.IM.Library.Net.SockEventArgs(1, ex.Message));
            }
            return Active;
        }
Пример #4
0
 public static void SetLingerOption(System.Net.Sockets.Socket socket, System.Net.Sockets.LingerOption lingerOption)
 {
     socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.Linger, lingerOption);
 }