public void Connect(UVTCPHandle tcp, string ip, Int32 port, Action <UVConnectRquest, Int32, UVException, object> callback, object state)
        {
            this.mCallback = callback;
            this.mState    = state;
            UVException ex;
            SockAddr    addr;

            UVIntrop.ip4_addr(ip, port, out addr, out ex);
            if (ex != null)
            {
                throw ex;
            }

            UVIntrop.tcp_connect(this, tcp, ref addr, UVConnectcb);
        }
Beispiel #2
0
        //todo:重载各种write

        #region  Callback
        private static void UVConnectionCb(IntPtr server, Int32 status)
        {
            UVException error;

            UVIntrop.Check(status, out error);
            UVTCPHandle handle = UVMemory.FromIntPtr <UVTCPHandle>(server);

            try
            {
                handle.mConnectionCallback(handle, status, error, handle.mConnectionCallbackState);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #3
0
 public static extern int uv_tcp_getpeername(UVTCPHandle handle, out SockAddr name, ref int namelen);
Beispiel #4
0
 public static extern int uv_tcp_connect(UVConnectRquest connect, UVTCPHandle socket, ref SockAddr addr, uv_connect_cb cb);
Beispiel #5
0
 public static extern int uv_tcp_nodelay(UVTCPHandle handle, int enable);
Beispiel #6
0
 public static extern int uv_tcp_open(UVTCPHandle handle, IntPtr hSocket);
Beispiel #7
0
 public static extern int uv_tcp_bind(UVTCPHandle handle, ref SockAddr addr, int flags);
Beispiel #8
0
 public static extern int uv_tcp_init(UVLoopHandle loop, UVTCPHandle handle);
Beispiel #9
0
 public static void tcp_getpeername(UVTCPHandle handle, out SockAddr addr, ref int namelen)
 {
     handle.Validate();
     ThrowIfErrored(uv_tcp_getpeername(handle, out addr, ref namelen));
 }
Beispiel #10
0
 public static void tcp_nodelay(UVTCPHandle handle, bool enable)
 {
     handle.Validate();
     ThrowIfErrored(uv_tcp_nodelay(handle, enable ? 1 : 0));
 }
Beispiel #11
0
 public static void tcp_connect(UVConnectRquest handle, UVTCPHandle socket, ref SockAddr addr, uv_connect_cb cb)
 {
     handle.Validate();
     ThrowIfErrored(uv_tcp_connect(handle, socket, ref addr, cb));
 }
Beispiel #12
0
 public static void tcp_open(UVTCPHandle handle, IntPtr hSocket)
 {
     handle.Validate();
     ThrowIfErrored(uv_tcp_open(handle, hSocket));
 }
Beispiel #13
0
 public static void tcp_bind(UVTCPHandle handle, ref SockAddr addr, int flags)
 {
     handle.Validate();
     ThrowIfErrored(uv_tcp_bind(handle, ref addr, flags));
 }
Beispiel #14
0
 public static void tcp_init(UVLoopHandle loop, UVTCPHandle handle)
 {
     loop.Validate();
     handle.Validate();
     ThrowIfErrored(uv_tcp_init(loop, handle));
 }
Beispiel #15
0
 /// <summary>
 /// 接收
 /// </summary>
 /// <param name="handle"></param>
 public void Accept(UVTCPHandle handle)
 {
     UVIntrop.accept(this, handle);
 }