예제 #1
0
        public bool Start()
        {
            Stop();

            try
            {
                //Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting... host:" + host + " port:" + port);

                connMap.Clear();

                IPEndPoint localEndPoint = new IPEndPoint(String.IsNullOrEmpty(host)?IPAddress.Any: NetHelp.ParseToIPAddress(host), port);
                listenSocket = new global::System.Net.Sockets.Socket(localEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
                listenSocket.Bind(localEndPoint);


                // start the server with a listen backlog of 100 connections
                listenSocket.Listen(maxConnectCount);
                // post accepts on the listening socket
                StartAccept(null);

                //Logger.Info("[CL.DeliveryServer] Socket.Iocp,started.");
                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(false);
        }
예제 #2
0
 private void BeginRead()
 {
     global::System.Net.Sockets.Socket client = this.Client;
     if (client == null)
     {
         return;
     }
     if (this.m_SslStream == null)
     {
         return;
     }
     try {
         this.m_SslStream.BeginRead(this.Buffer.Array, this.Buffer.Offset, this.Buffer.Count,
                                    new AsyncCallback(this.OnDataRead), (object)new SslStreamTcpSession.SslAsyncState()
         {
             SslStream = this.m_SslStream,
             Client    = client
         });
     } catch (Exception ex) {
         if (!this.IsIgnorableException(ex))
         {
             this.OnError(ex);
         }
         if (!this.EnsureSocketClosed(client))
         {
             return;
         }
         this.OnClosed();
     }
 }
예제 #3
0
        private static IPAddress GetNextAddress(
            ConnectAsyncExtension.DnsConnectState state,
            out global::System.Net.Sockets.Socket attempSocket)
        {
            IPAddress ipAddress = (IPAddress)null;

            attempSocket = (global::System.Net.Sockets.Socket)null;
            int nextAddressIndex = state.NextAddressIndex;

            while (attempSocket == null)
            {
                if (nextAddressIndex >= state.Addresses.Length)
                {
                    return((IPAddress)null);
                }
                ipAddress = state.Addresses[nextAddressIndex++];
                if (ipAddress.AddressFamily == AddressFamily.InterNetworkV6)
                {
                    attempSocket = state.Socket6;
                }
                else if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
                {
                    attempSocket = state.Socket4;
                }
            }

            state.NextAddressIndex = nextAddressIndex;
            return(ipAddress);
        }
예제 #4
0
        public override global::sys.net.Socket accept()
        {
                        #line 19 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
            if ((this._acceptedSockets.length > 0))
            {
                                #line 20 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
                global::System.Net.Sockets.Socket  n = ((global::System.Net.Sockets.Socket)(this._acceptedSockets.shift()));
                global::hx.ws.cs.NonBlockingSocket r = new global::hx.ws.cs.NonBlockingSocket();
                                #line 22 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
                r.sock   = n;
                r.output = new global::cs.io.NativeOutput(((global::System.IO.Stream)(new global::System.Net.Sockets.NetworkStream(r.sock))));
                                #line 24 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
                r.input = new global::cs.io.NativeInput(((global::System.IO.Stream)(new global::System.Net.Sockets.NetworkStream(r.sock))));
                return(r);
            }

                        #line 28 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
            if ((this._socketAsyncEventArgs == null))
            {
                                #line 29 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
                this._socketAsyncEventArgs            = new global::System.Net.Sockets.SocketAsyncEventArgs();
                this._socketAsyncEventArgs.Completed += ((global::System.EventHandler <global::System.Net.Sockets.SocketAsyncEventArgs>)(this.onAcceptCompleted));
                                #line 31 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
                this.sock.AcceptAsync(((global::System.Net.Sockets.SocketAsyncEventArgs)(this._socketAsyncEventArgs)));
            }

                        #line 33 "D:\\project\\sangong\\sangong\\src\\hx\\ws\\cs\\NonBlockingSocket.hx"
            throw global::haxe.lang.HaxeException.wrap("Blocking");
        }
예제 #5
0
        protected bool EnsureSocketClosed(global::System.Net.Sockets.Socket prevClient)
        {
            global::System.Net.Sockets.Socket socket = this.Client;
            if (socket == null)
            {
                return(false);
            }
            bool flag = true;

            if (prevClient != null && prevClient != socket)
            {
                socket = prevClient;
                flag   = false;
            }
            else
            {
                this.Client      = (global::System.Net.Sockets.Socket)null;
                this.m_IsSending = 0;
            }

            try {
                socket.Shutdown(SocketShutdown.Both);
            } catch {
            } finally {
                try {
                    socket.Close();
                } catch {
                }
            }

            return(flag);
        }
        public static void Validate
        (
            this global::System.Net.Sockets.Socket socket
            , KeySizes[] ks
            , int i
            , string s
        )
        {
            throw new NotImplementedException("Silverlight Cryptography TODO!");

            return;
        }
예제 #7
0
        public override object __hx_setField(string field, int hash, object @value, bool handleProperties)
        {
            unchecked {
                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                switch (hash)
                {
                case 1066567601:
                {
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    this.custom = ((object)(@value));
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    return(@value);
                }


                case 209784577:
                {
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    this.output = ((global::haxe.io.Output)(@value));
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    return(@value);
                }


                case 1042138122:
                {
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    this.input = ((global::haxe.io.Input)(@value));
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    return(@value);
                }


                case 1280842308:
                {
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    this.sock = ((global::System.Net.Sockets.Socket)(@value));
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    return(@value);
                }


                default:
                {
                                                #line 42 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    return(base.__hx_setField(field, hash, @value, handleProperties));
                }
                }
            }
                        #line default
        }
예제 #8
0
        protected virtual void OnConnected()
        {
            global::System.Net.Sockets.Socket client = this.Client;
            if (client != null && client.NoDelay != this.NoDeplay)
            {
                client.NoDelay = this.NoDeplay;
            }
            this.IsConnected = true;
            EventHandler connected = this.m_Connected;

            if (connected == null)
            {
                return;
            }
            connected((object)this, EventArgs.Empty);
        }
예제 #9
0
        public void Connect(Action <DeliveryConnection> onConneced)
        {
            try
            {
                //Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting... host:" + host + " port:" + port);

                //(x.1) Instantiates the endpoint and socket.
                var hostEndPoint = new IPEndPoint(NetHelp.ParseToIPAddress(host), port);
                var socket       = new global::System.Net.Sockets.Socket(hostEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);


                DeliveryConnection _conn = new DeliveryConnection();

                _conn.Conn_OnConnected = onConneced;

                var receiveEventArgs = _conn.receiveEventArgs = new SocketAsyncEventArgs();

                receiveEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(IO_Completed);


                receiveEventArgs.UserToken = _conn;


                _conn.Init(socket);

                //var buff= DataPool.BytesGet(receiveBufferSize);
                var buff = new byte[receiveBufferSize];
                _conn.receiveEventArgs.SetBuffer(buff, 0, buff.Length);


                //(x.2)
                SocketAsyncEventArgs connectArgs = new SocketAsyncEventArgs();
                connectArgs.RemoteEndPoint = hostEndPoint;
                connectArgs.Completed     += new EventHandler <SocketAsyncEventArgs>(OnConnect);
                connectArgs.UserToken      = _conn;

                socket.ConnectAsync(connectArgs);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
예제 #10
0
        SocketAsyncEventArgs ReceiveEventArgs_Create(global::System.Net.Sockets.Socket socket)
        {
            var conn = Delivery_OnConnected(socket);

            SocketAsyncEventArgs receiveEventArgs = new SocketAsyncEventArgs();

            receiveEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(IO_Completed);


            //var buff = DataPool.BytesGet(receiveBufferSize);
            var buff = new byte[receiveBufferSize];

            receiveEventArgs.SetBuffer(buff, 0, buff.Length);

            receiveEventArgs.UserToken = conn;
            conn.receiveEventArgs      = receiveEventArgs;

            return(receiveEventArgs);
        }
예제 #11
0
        private DeliveryConnection Delivery_OnConnected(global::System.Net.Sockets.Socket socket)
        {
            var conn = new DeliveryConnection();

            conn.Init(socket);

            conn.Conn_OnDisconnected = Delivery_OnDisconnected;

            connMap[conn.GetHashCode()] = conn;
            try
            {
                Conn_OnConnected?.Invoke(conn);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(conn);
        }
예제 #12
0
        private void StartReceive()
        {
            global::System.Net.Sockets.Socket client = this.Client;
            if (client == null)
            {
                return;
            }
            bool async;

            try {
                async = client.ReceiveAsync(this.m_SocketEventArgs);
            } catch (SocketException ex) {
                if (!this.IsIgnorableSocketError(ex.ErrorCode))
                {
                    this.OnError((Exception)ex);
                }
                if (!this.EnsureSocketClosed(client))
                {
                    return;
                }
                this.OnClosed();
                return;
            } catch (Exception ex) {
                if (!this.IsIgnorableException(ex))
                {
                    this.OnError(ex);
                }
                if (!this.EnsureSocketClosed(client))
                {
                    return;
                }
                this.OnClosed();
                return;
            }

            if (async)
            {
                return;
            }
            this.ProcessReceive(this.m_SocketEventArgs);
        }
예제 #13
0
        protected void ProcessConnect(global::System.Net.Sockets.Socket socket, object state, SocketAsyncEventArgs e)
        {
            if (e != null && e.SocketError != SocketError.Success)
            {
                e.Dispose();
                this.m_InConnecting = false;
                this.OnError((Exception) new SocketException((int)e.SocketError));
            }
            else if (socket == null)
            {
                this.m_InConnecting = false;
                this.OnError((Exception) new SocketException(10053));
            }
            else if (!socket.Connected)
            {
                this.m_InConnecting = false;
                this.OnError(
                    (Exception) new SocketException(
                        (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error)));
            }
            else
            {
                if (e == null)
                {
                    e = new SocketAsyncEventArgs();
                }
                e.Completed        += new EventHandler <SocketAsyncEventArgs>(this.SocketEventArgsCompleted);
                this.Client         = socket;
                this.m_InConnecting = false;
                try {
                    this.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
                } catch {
                }

                this.OnGetSocket(e);
            }
        }
예제 #14
0
 protected override void SendInternal(PosList <ArraySegment <byte> > items)
 {
     global::System.Net.Sockets.Socket client = this.Client;
     try {
         ArraySegment <byte> arraySegment = items[items.Position];
         this.m_SslStream.BeginWrite(arraySegment.Array, arraySegment.Offset, arraySegment.Count,
                                     new AsyncCallback(this.OnWriteComplete), (object)new SslStreamTcpSession.SslAsyncState()
         {
             SslStream    = this.m_SslStream,
             Client       = client,
             SendingItems = items
         });
     } catch (Exception ex) {
         if (!this.IsIgnorableException(ex))
         {
             this.OnError(ex);
         }
         if (!this.EnsureSocketClosed(client))
         {
             return;
         }
         this.OnClosed();
     }
 }
예제 #15
0
 public static void Receive(this global::System.Net.Sockets.Socket socket)
 {
     return;
 }
예제 #16
0
        public static object @select(global::haxe.root.Array read, global::haxe.root.Array write, global::haxe.root.Array others, object timeout)
        {
            unchecked {
                                #line 142 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.ds.IntMap map = new global::haxe.ds.IntMap();
                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((read != null))
                {
                                        #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g = 0;
                                        #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g < read.length))
                    {
                                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s = ((global::sys.net.Socket)(read.__get(_g)));
                                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g;
                                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        map.@set(((int)(s.sock.Handle.ToInt32())), ((object)(s)));
                    }
                }

                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((write != null))
                {
                                        #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g1 = 0;
                                        #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g1 < write.length))
                    {
                                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s1 = ((global::sys.net.Socket)(write.__get(_g1)));
                                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g1;
                                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        map.@set(((int)(s1.sock.Handle.ToInt32())), ((object)(s1)));
                    }
                }

                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((others != null))
                {
                                        #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g2 = 0;
                                        #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g2 < others.length))
                    {
                                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s2 = ((global::sys.net.Socket)(others.__get(_g2)));
                                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g2;
                                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        map.@set(((int)(s2.sock.Handle.ToInt32())), ((object)(s2)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList a = new global::System.Collections.ArrayList(((int)((((read == null)) ? (0) : (read.length)))));
                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((read != null))
                {
                                        #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g3 = 0;
                                        #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g3 < read.length))
                    {
                                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s3 = ((global::sys.net.Socket)(read.__get(_g3)));
                                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g3;
                                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a.Add(((object)(s3.sock)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList rawRead = a;
                global::System.Collections.ArrayList a1      = new global::System.Collections.ArrayList(((int)((((write == null)) ? (0) : (write.length)))));
                if ((write != null))
                {
                                        #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g4 = 0;
                                        #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g4 < write.length))
                    {
                                                #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s4 = ((global::sys.net.Socket)(write.__get(_g4)));
                                                #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g4;
                                                #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a1.Add(((object)(s4.sock)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList rawWrite = a1;
                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList a2 = new global::System.Collections.ArrayList(((int)((((others == null)) ? (0) : (others.length)))));
                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((others != null))
                {
                                        #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g5 = 0;
                                        #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g5 < others.length))
                    {
                                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s5 = ((global::sys.net.Socket)(others.__get(_g5)));
                                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g5;
                                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a2.Add(((object)(s5.sock)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList rawOthers = a2;
                                #line 173 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                int microsec = (((timeout == default(object))) ? (-1) : (((int)((((double)(global::haxe.lang.Runtime.toDouble(timeout))) * ((double)(1000000)))))));
                global::System.Net.Sockets.Socket.Select(((global::System.Collections.IList)(rawRead)), ((global::System.Collections.IList)(rawWrite)), ((global::System.Collections.IList)(rawOthers)), ((int)(microsec)));
                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.root.Array a3 = new global::haxe.root.Array(new object[] {});
                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                {
                                        #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g6 = 0;
                                        #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g11 = rawRead.Count;
                                        #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g6 < _g11))
                    {
                                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        int i = _g6++;
                                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::System.Net.Sockets.Socket s6 = ((global::System.Net.Sockets.Socket)(rawRead[i]));
                                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a3.push(((global::sys.net.Socket)(map.@get(((int)(s6.Handle.ToInt32()))))));
                    }
                }

                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.root.Array tmp = a3;
                global::haxe.root.Array a4  = new global::haxe.root.Array(new object[] {});
                {
                                        #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g7 = 0;
                                        #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g12 = rawWrite.Count;
                                        #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g7 < _g12))
                    {
                                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        int i1 = _g7++;
                                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::System.Net.Sockets.Socket s7 = ((global::System.Net.Sockets.Socket)(rawWrite[i1]));
                                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a4.push(((global::sys.net.Socket)(map.@get(((int)(s7.Handle.ToInt32()))))));
                    }
                }

                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.root.Array tmp1 = a4;
                global::haxe.root.Array a5   = new global::haxe.root.Array(new object[] {});
                {
                                        #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g8 = 0;
                                        #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g13 = rawOthers.Count;
                                        #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g8 < _g13))
                    {
                                                #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        int i2 = _g8++;
                                                #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::System.Net.Sockets.Socket s8 = ((global::System.Net.Sockets.Socket)(rawOthers[i2]));
                                                #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a5.push(((global::sys.net.Socket)(map.@get(((int)(s8.Handle.ToInt32()))))));
                    }
                }

                                #line 176 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                return(new global::haxe.lang.DynamicObject(new int[] { 1269254998, 1348037855, 1898155939 }, new object[] { tmp, tmp1, a5 }, new int[] {}, new double[] {}));
            }
                        #line default
        }
예제 #17
0
 public virtual void bind(global::sys.net.Host host, int port)
 {
                 #line 99 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
     this.sock = new global::System.Net.Sockets.Socket(global::System.Net.Sockets.AddressFamily.InterNetwork, global::System.Net.Sockets.SocketType.Stream, global::System.Net.Sockets.ProtocolType.Tcp);
     this.sock.Bind(((global::System.Net.EndPoint)(new global::System.Net.IPEndPoint(((global::System.Net.IPAddress)(host.ipAddress)), ((int)(port))))));
 }
예제 #18
0
 public virtual void bind(global::sys.net.Host host, int port)
 {
                 #line 99 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
     this.sock = new global::System.Net.Sockets.Socket(global::System.Net.Sockets.AddressFamily.InterNetwork, global::System.Net.Sockets.SocketType.Stream, global::System.Net.Sockets.ProtocolType.Tcp);
     this.sock.Bind(((global::System.Net.EndPoint)(new global::System.Net.IPEndPoint(((global::System.Net.IPAddress)(host.ipAddress)), ((int)(port))))));
 }
예제 #19
0
        public static object @select(global::Array <object> read, global::Array <object> write, global::Array <object> others, global::haxe.lang.Null <double> timeout)
        {
            unchecked {
                                #line 142 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::haxe.ds.IntMap <object> map = new global::haxe.ds.IntMap <object>();
                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((read != null))
                {
                                        #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g = 0;
                                        #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g < read.length))
                    {
                                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s = ((global::sys.net.Socket)(read[_g]));
                                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g;
                                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        map.@set(s.sock.Handle.ToInt32(), s);
                    }
                }

                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((write != null))
                {
                                        #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g1 = 0;
                                        #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g1 < write.length))
                    {
                                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s1 = ((global::sys.net.Socket)(write[_g1]));
                                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g1;
                                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        map.@set(s1.sock.Handle.ToInt32(), s1);
                    }
                }

                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((others != null))
                {
                                        #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g2 = 0;
                                        #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g2 < others.length))
                    {
                                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s2 = ((global::sys.net.Socket)(others[_g2]));
                                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g2;
                                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        map.@set(s2.sock.Handle.ToInt32(), s2);
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList a = new global::System.Collections.ArrayList(((int)((((read == null)) ? (0) : (read.length)))));
                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((read != null))
                {
                                        #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g3 = 0;
                                        #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g3 < read.length))
                    {
                                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s3 = ((global::sys.net.Socket)(read[_g3]));
                                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g3;
                                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a.Add(((object)(s3.sock)));
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList rawRead = a;
                global::System.Collections.ArrayList a1      = new global::System.Collections.ArrayList(((int)((((write == null)) ? (0) : (write.length)))));
                if ((write != null))
                {
                                        #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g4 = 0;
                                        #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g4 < write.length))
                    {
                                                #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s4 = ((global::sys.net.Socket)(write[_g4]));
                                                #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g4;
                                                #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a1.Add(((object)(s4.sock)));
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList rawWrite = a1;
                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList a2 = new global::System.Collections.ArrayList(((int)((((others == null)) ? (0) : (others.length)))));
                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((others != null))
                {
                                        #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g5 = 0;
                                        #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g5 < others.length))
                    {
                                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s5 = ((global::sys.net.Socket)(others[_g5]));
                                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g5;
                                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a2.Add(((object)(s5.sock)));
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList rawOthers = a2;
                                #line 173 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                int microsec = ((!(timeout.hasValue)) ? (-1) : (((int)(((timeout).@value * 1000000)))));
                global::System.Net.Sockets.Socket.Select(((global::System.Collections.IList)(rawRead)), ((global::System.Collections.IList)(rawWrite)), ((global::System.Collections.IList)(rawOthers)), ((int)(microsec)));
                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::Array <object> a3 = new global::Array <object>(new object[] {});
                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                {
                                        #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g6 = 0;
                                        #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g7 = rawRead.Count;
                                        #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g6 < _g7))
                    {
                                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        int i = _g6++;
                                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::System.Net.Sockets.Socket s6 = ((global::System.Net.Sockets.Socket)(rawRead[i]));
                                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a3.push(((global::sys.net.Socket)((map.@get(s6.Handle.ToInt32())).@value)));
                    }
                }

                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::Array <object> tmp = a3;
                global::Array <object> a4  = new global::Array <object>(new object[] {});
                {
                                        #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g8 = 0;
                                        #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g9 = rawWrite.Count;
                                        #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g8 < _g9))
                    {
                                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        int i1 = _g8++;
                                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::System.Net.Sockets.Socket s7 = ((global::System.Net.Sockets.Socket)(rawWrite[i1]));
                                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a4.push(((global::sys.net.Socket)((map.@get(s7.Handle.ToInt32())).@value)));
                    }
                }

                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::Array <object> tmp1 = a4;
                global::Array <object> a5   = new global::Array <object>(new object[] {});
                {
                                        #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g10 = 0;
                                        #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g11 = rawOthers.Count;
                                        #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g10 < _g11))
                    {
                                                #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        int i2 = _g10++;
                                                #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::System.Net.Sockets.Socket s8 = ((global::System.Net.Sockets.Socket)(rawOthers[i2]));
                                                #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a5.push(((global::sys.net.Socket)((map.@get(s8.Handle.ToInt32())).@value)));
                    }
                }

                                #line 176 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                return(new global::haxe.lang.DynamicObject(new int[] { 1269254998, 1348037855, 1898155939 }, new object[] { tmp, tmp1, a5 }, new int[] {}, new double[] {}));
            }
                        #line default
        }
예제 #20
0
 public void Init(global::System.Net.Sockets.Socket socket)
 {
     this.socket = socket;
 }
예제 #21
0
 public ProxyEventArgs(bool connected, global::System.Net.Sockets.Socket socket, Exception exception)
 {
     this.Connected = connected;
     this.Socket    = socket;
     this.Exception = exception;
 }
예제 #22
0
 public ProxyEventArgs(global::System.Net.Sockets.Socket socket)
     : this(true, socket, (Exception)null)
 {
 }