示例#1
0
        void WithSockets(UnixAddressFamily af, UnixSocketType type, UnixSocketProtocol protocol, Action <int, int> f)
        {
            int so1, so2;

            if ((so1 = Syscall.socket(af, type, protocol)) < 0)
            {
                UnixMarshal.ThrowExceptionForLastError();
            }
            try {
                if ((so2 = Syscall.socket(af, type, protocol)) < 0)
                {
                    UnixMarshal.ThrowExceptionForLastError();
                }
                try {
                    SetTimeout(so1);
                    SetTimeout(so2);

                    f(so1, so2);
                } finally {
                    if (Syscall.close(so2) < 0)
                    {
                        UnixMarshal.ThrowExceptionForLastError();
                    }
                }
            } finally {
                if (Syscall.close(so1) < 0)
                {
                    UnixMarshal.ThrowExceptionForLastError();
                }
            }
        }
        public static Int32 FromUnixSocketProtocol(UnixSocketProtocol value)
        {
            Int32 rval;

            if (FromUnixSocketProtocol(value, out rval) == -1)
            {
                ThrowArgumentException(value);
            }
            return(rval);
        }
示例#3
0
文件: SocketTest.cs 项目: ZZHGit/mono
		void WithSockets (UnixAddressFamily af, UnixSocketType type, UnixSocketProtocol protocol, Action<int, int> f)
		{
			int so1, so2;
			if ((so1 = Syscall.socket (af, type, protocol)) < 0)
				UnixMarshal.ThrowExceptionForLastError ();
			try {
				if ((so2 = Syscall.socket (af, type, protocol)) < 0)
					UnixMarshal.ThrowExceptionForLastError ();
				try {
					SetTimeout (so1);
					SetTimeout (so2);

					f (so1, so2);
				} finally {
					if (Syscall.close (so2) < 0)
						UnixMarshal.ThrowExceptionForLastError ();
				}
			} finally {
				if (Syscall.close (so1) < 0)
					UnixMarshal.ThrowExceptionForLastError ();
			}
		}
		public static bool TryToUnixSocketProtocol (Int32 value, out UnixSocketProtocol rval)
		{
			return ToUnixSocketProtocol (value, out rval) == 0;
		}
		private static extern int ToUnixSocketProtocol (Int32 value, out UnixSocketProtocol rval);
		public static Int32 FromUnixSocketProtocol (UnixSocketProtocol value)
		{
			Int32 rval;
			if (FromUnixSocketProtocol (value, out rval) == -1)
				ThrowArgumentException (value);
			return rval;
		}
		public static bool TryFromUnixSocketProtocol (UnixSocketProtocol value, out Int32 rval)
		{
			return FromUnixSocketProtocol (value, out rval) == 0;
		}
		private static extern int FromUnixSocketProtocol (UnixSocketProtocol value, out Int32 rval);
 public static bool TryToUnixSocketProtocol(Int32 value, out UnixSocketProtocol rval)
 {
     return(ToUnixSocketProtocol(value, out rval) == 0);
 }
 private static extern int ToUnixSocketProtocol(Int32 value, out UnixSocketProtocol rval);
 public static bool TryFromUnixSocketProtocol(UnixSocketProtocol value, out Int32 rval)
 {
     return(FromUnixSocketProtocol(value, out rval) == 0);
 }
 private static extern int FromUnixSocketProtocol(UnixSocketProtocol value, out Int32 rval);