• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# StateObject类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中StateObject的典型用法代码示例。如果您正苦于以下问题:C# StateObject类的具体用法?C# StateObject怎么用?C# StateObject使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



StateObject类属于命名空间,在下文中一共展示了StateObject类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: AcceptCallback

        /// <summary>
        /// AcceptCallback是回调函数
        /// </summary>
        /// <param name="ar"></param>
        public static void AcceptCallback(IAsyncResult ar)
        {
            // 接收连接后,按照前面的定义会执行该函数,首先就是让主线程继续往下执行
            allDone.Set();
            count++;
            Console.WriteLine("连接已经建立");

            try
            {
                //将接收的连接传递进来
                Socket listener = (Socket)ar.AsyncState;

                //调用EndAccept方法表示连接已经建立,建立的连接就是该方法的返回的对象
                Socket handler = listener.EndAccept(ar);

                //保存当前会话的Socket信息
                StateObject state = new StateObject();

                state.socket = handler;

                //这里又出现了类似的定义。可以看出,BeginReceive函数的参数和同步里面Receive函数的参数前面是相同的
                //只是后面多出了两个:定义在BeginReceive函数执行完毕以后所要执行的操作
                //这里定义的是ReadCallback函数
                handler.BeginReceive(state.buffer, 0, StateObject.bufferSize, 0,
                    new AsyncCallback(ReadCallback), state);

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                _iLog.Error(ex.Message);
            }
        }
开发者ID:Deson621,项目名称:demo,代码行数:37,代码来源:AsyncSocketService.cs


示例2: AcceptCallback

        public void AcceptCallback(IAsyncResult ar)
        {
            // Signal the main thread to continue.
            allDone.Set();

            // Get the socket that handles the client request.
            Socket listener = (Socket)ar.AsyncState;
            Socket handler = listener.EndAccept(ar);
            handler.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, 1);

            // Create the state object.
            StateObject state = new StateObject();
            state.workSocket = handler;

            lock (__syncroot)
            {
                if (clients.Count < 2)
                {
                    Console.WriteLine("Accepting client {0}", clients.Count);
                    clients[handler.Handle] = state;
                    handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);
                }
                else
                {
                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                }
            }
        }
开发者ID:Zawulon,项目名称:jseverywhere,代码行数:29,代码来源:AsynchronousSocketListener.cs


示例3: AcceptCallback

        public static void AcceptCallback(IAsyncResult ar)
        {
            // Signal the main thread to continue.
            AllDone.Set();

            // Get the socket that handles the client request.
            Socket listener = (Socket) ar.AsyncState;
            Socket handler = listener.EndAccept(ar);

            // Create the state object.
            bool wasLoogedIn = false;
            foreach (var stateObject in Clients)
            {
                if ((stateObject.WorkSocket.RemoteEndPoint as IPEndPoint).Address.Address ==
                    (handler.RemoteEndPoint as IPEndPoint).Address.Address)
                {
                    wasLoogedIn = true;
                    ClientState = stateObject;
                    ClientState.WorkSocket = handler;
                    break;
                }
            }
            if (!wasLoogedIn)
            {
                ClientState = new StateObject();
                ClientState.WorkSocket = handler;
                Clients.Add(ClientState);
            }
            handler.BeginReceive(ClientState.Buffer, 0, StateObject.BufferSize, 0,
                                 ReadCallback, ClientState);
        }
开发者ID:ryselis,项目名称:viktoro_viktorina,代码行数:31,代码来源:Server.cs


示例4: Receive

        public void Receive()
        {
            try
            {
                connectDone.WaitOne();
                Console.WriteLine("Start to Listening");
                while (true)
                {
                    receiveDone.Reset();

                    // Create the state object.
                    StateObject state = new StateObject();
                    state.workSocket = server;

                    // Begin receiving the data from the remote device.
                    server.BeginReceive(state.recBuffer, 0, StateObject.BufferSize, 0,
                        new AsyncCallback(ReceiveCallback), state);

                    receiveDone.WaitOne();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
开发者ID:TheProjecter,项目名称:somscode,代码行数:26,代码来源:Program.cs


示例5: OnReceive

 public void OnReceive(IAsyncResult asyncResult)
 {
     try
     {
         Console.WriteLine("Got some data...");
         StateObject so = (StateObject)asyncResult.AsyncState;
         Socket s = so.workSocket;
         IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
         EndPoint tempRemoteEP = (EndPoint)sender;
         int read = s.EndReceiveFrom(asyncResult, ref tempRemoteEP);
         Console.WriteLine("Read is {0}", read);
         if (read > 0)
         {
             StateObject processState = new StateObject();
             processState.endPoint = tempRemoteEP;
             processState.buffer = so.buffer;
             processState.workSocket = s;
             processState.recvSize = read;
             processState.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
             ProcessBuffer(processState);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine("Exception occurred in OnReceive {0}", e.Message);
         Console.WriteLine(e.StackTrace);
     }
     finally
     {
         allDone.Set();
     }
 }
开发者ID:wirepair,项目名称:GHAST_priv8,代码行数:32,代码来源:UDPServices.cs


示例6: SyncSocClient

        public SyncSocClient(string _ipAddress, int port, int timeout)
        {
            try
            {
                IPAddress ipAddress = System.Net.IPAddress.Parse(_ipAddress);
                mPort = port;
                remoteEP = new IPEndPoint(ipAddress, mPort);

                mSender = new Socket(AddressFamily.InterNetwork,
                                        SocketType.Stream, ProtocolType.Tcp);

                if (timeout > 0)
                {
                    mSender.ReceiveTimeout = timeout;
                    mSender.SendTimeout = timeout;
                }
                //mSender.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout);

                // The socket will linger for 10 seconds after Socket.Close is called.
                LingerOption lingerOption = new LingerOption(true, 10);

                mSender.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

                stateObj = new StateObject(mSender);
            }
            catch (Exception e)
            {
                setErrorMessage(e, string.Format("소켓생성Error ip[{0}]/port[{1}]/timeout[{2}]]",_ipAddress,port,timeout));
                Logger.error(e.ToString());
            }
        }
开发者ID:WeDoCrm,项目名称:misc,代码行数:31,代码来源:SocketClient.cs


示例7: OnConnectAsync

        private async Task OnConnectAsync(TcpClient tcpClient, StateObject tcpState)
        {
            // Start a transfer task
            var transferTask = OnTransferAsync(tcpClient, tcpState);

            // lock it as this is critial path
            lock (_lock)
                _connections.Add(transferTask);

            try
            {
                await transferTask;

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                lock (_lock)
                    _connections.Remove(transferTask);
            }

        }
开发者ID:quang319,项目名称:Penn-State-Fall,代码行数:25,代码来源:TcpTorrent.cs


示例8: StartListener

        // This method instantiate the tcp server
        public async Task StartListener(StateObject tcpState)
        {
            var TcpServer = TcpListener.Create(1000);

            // this if statement differentiates between a server and a client's server
            if (tcpState.ClientType == false)
            {
                Console.WriteLine("Creating server on port {0}", 1000);
                TcpServer = TcpListener.Create(1000);

            }
            else {
                TcpServer = TcpListener.Create(tcpState.Port);
            }

            TcpServer.Start(100);
            while (true)
            {
                var TcpClient = await TcpServer.AcceptTcpClientAsync();
                var task = OnConnectAsync(TcpClient, tcpState);
                if (task.IsFaulted)
                    task.Wait();
            }
            //Console.WriteLine("Server is closing down");

        }
开发者ID:quang319,项目名称:Penn-State-Fall,代码行数:27,代码来源:TcpTorrent.cs


示例9: AcceptCallback

        public static void AcceptCallback(IAsyncResult ar)
        {
            StateObject state = null;
            TcpServer c = (TcpServer)ar.AsyncState;
            try
            {
                if (c == null) return;
                Socket listener = (Socket)c.m_Socket;
                Socket handler = listener.EndAccept(ar);
                c.onConnect(handler);
                state = new StateObject();
                state.s = handler;
                state.c = (TcpServer)c;
                handler.BeginReceive(state.buffer, 0, state.buffer.Length, 0, new AsyncCallback(ReadCallBack), state);

                listener.BeginAccept(new AsyncCallback(AcceptCallback), c);
            }
            catch (System.Exception ex)
            {
                if (state != null)
                {
                    state.c.onClose(state.s);

                    state.s.Dispose();
                }
            }
        }
开发者ID:dream-young-soul,项目名称:soul,代码行数:27,代码来源:TcpServer.cs


示例10: Targets

 public override List<Hex> Targets(StateObject s)
 {
     List<Hex> targets = new List<Hex>();
     s.Caster.Base.Hex.Adjacent(GameControl.gameControl.GridControl.Map).ForEach(h => h.Adjacent(GameControl.gameControl.GridControl.Map).ForEach(he => targets.Add(he)));
     targets.RemoveAll(h => h.Unit != null);
     return targets;
 }
开发者ID:AndersHqst,项目名称:Battle-For-Betelgeuse,代码行数:7,代码来源:UnitCard.cs


示例11: AcceptCallback

        public void AcceptCallback(IAsyncResult ar)
        {
            //System.Threading.Thread.Sleep(100);
            // Signal the main thread to continue.
            allDone.Set();

            // Get the socket that handles the client request.
            Socket listener = (Socket)ar.AsyncState;
            Socket handler = listener.EndAccept(ar);

            // Create the state object.
            StateObject state = new StateObject();
            state.workSocket = handler;
            handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
                new AsyncCallback(ReadCallback), state);

            parent.eventFromMainForm += delegate(object sender, SocketEventArgs e)
            {
                if ((((IPEndPoint)handler.RemoteEndPoint).Address.ToString() == e.address) && (handler.Connected))
                {
                    Send(handler, e.programm + "<EOC>");
                    sendDone.WaitOne();
                    Send(handler, e.parameters + "<EOPN>");
                    sendDone.WaitOne();
                    Send(handler, "<SUBMIT>");
                    sendDone.WaitOne();
                }
                else showM("Handler is offline");
            };
        }
开发者ID:red404,项目名称:ARSMonitor,代码行数:30,代码来源:AsyncServer.cs


示例12: StartClient

    public static void StartClient()
    {
        // Connect to a remote device.
        try
        {

            // Establish the remote endpoint for the socket.
            // The name of the
            // remote device is "host.contoso.com".
            //IPHostEntry ipHostInfo = Dns.Resolve("user");
            //IPAddress ipAddress = ipHostInfo.AddressList[0];
            IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
            IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
            // Create a TCP/IP socket.
            client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            // Connect to the remote endpoint.
            client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client);

            state = new StateObject();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }
开发者ID:yangwenlong,项目名称:ywl,代码行数:25,代码来源:Client.cs


示例13: StartReceiving

        private async Task StartReceiving(StateObject state)
        {
            if (_isDisposed) return;
            if (!_socket.Connected) return;

            _logger.Info("Receiving message...");

            var args = new SocketAsyncEventArgs();
            args.SetBuffer(new byte[0x1000], 0, 0x1000);
            var awaitable = new SocketAwaitable(args);

            while (true)
            {
                await _socket.ReceiveAsync(awaitable);
                var bytesRead = args.BytesTransferred;
                if (bytesRead <= 0) break;

                _logger.Info(string.Format("Bytes read: {0}", bytesRead));
                if (awaitable.EventArgs.Buffer[0] == _framingProtocol.StartFrame || state.StartedReceiving)
                {
                    state.Append(Encoding.ASCII.GetString(awaitable.EventArgs.Buffer, 0, bytesRead));
                }

                if (awaitable.EventArgs.Buffer[bytesRead - 1] == _framingProtocol.EndFrame) // We're done
                {
                    InvokeMessageReceived(state.ToString());
                }
            }
        }
开发者ID:solidgranite,项目名称:AsyncAwaitSocket,代码行数:29,代码来源:InboundSocketProxy.cs


示例14: bomba1_DoWork

        private void bomba1_DoWork(object sender, DoWorkEventArgs e)
        {
            Socket listener = new Socket(
                AddressFamily.InterNetwork,
                SocketType.Stream,
                ProtocolType.Tcp
            );

            String data = null;

            listener.Bind(bomba1EndPoint);
            listener.Listen(1);

            // Create the state object.
            sBomba1 = new StateObject();
            sBomba1.bomba = bomba1;
            sBomba1.workSocket = listener;

            while (true)
            {
                listener.Accept();
                bomba1Status.Text = "Bomba 1 conectada";

                while (true)
                {
                    int bytesRec = listener.Receive(sBomba1.buffer);
                    data += Encoding.ASCII.GetString(sBomba1.buffer, 0, bytesRec);
                    bomba1.ReportProgress(1, sBomba1);
                }
            }
        }
开发者ID:davividal,项目名称:sistema-bomba,代码行数:31,代码来源:Caixa.cs


示例15: Setup

 public void Setup(StateObject s, SpellCard target, float delay)
 {
     this.s = s;
     this.target = target;
     this.delay = delay;
     invoked = true;
 }
开发者ID:AndersHqst,项目名称:Battle-For-Betelgeuse,代码行数:7,代码来源:SpellCardCallBack.cs


示例16: Run

 /// <summary>
 ///  Thread for session with PythonServer
 /// </summary>
 private void Run()
 {
     try
     {
         // Build listener for python engine
         listener = new TcpListener(9669);
         listener.Start();
         //  Wait connection from python engine and if successful then create new socket to python engine
         pythonClient = listener.AcceptTcpClient();
         mainForm.PrintToLog(DateTime.Now.ToShortTimeString() + " :  Server trying start...", Color.Black);
         listener.Stop(); // stop listening because python engine connected to GUI
         flagRun = true;
         // Asynchronic StateObject
         StateObject stateObject = new StateObject();
         stateObject.workSocket = pythonClient.Client;
         // Begins to asynchronously receive data from a connected socket with  python engine
         pythonClient.Client.BeginReceive(stateObject.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(Read_Callback), stateObject);
     }
     catch (SocketException se)
     {
         mainForm.PrintToLog(se.Message, Color.Red);
     }
     catch (Exception e)
     {
         mainForm.PrintToLog(e.Message, Color.Red);
     }
 }
开发者ID:zadatal,项目名称:Parent-protection,代码行数:30,代码来源:PythonHandler.cs


示例17: StartListening

        public void StartListening()
        {
            EndPoint localEp = ( EndPoint )_iep;
            Socket listener = new Socket( AddressFamily.InterNetwork,
                                          SocketType.Dgram,
                                          ProtocolType.Udp );
            try
            {
                listener.Bind( localEp );
                while ( true )
                {
                    allDone.Reset();
                    StateObject so = new StateObject();
                    so.workSocket = listener;
                    Console.WriteLine( "Waiting for a connection..." );
                    IAsyncResult result =
                    listener.BeginReceiveFrom( so.buffer,
                                              0,
                                              StateObject.BUFFER_SIZE,
                                              SocketFlags.None,
                                              ref localEp,
                                              new AsyncCallback( this.OnReceive ), so );
                    allDone.WaitOne();
                }

            }
            catch ( Exception e )
            {
                Console.WriteLine( e.ToString() );
            }
        }
开发者ID:wirepair,项目名称:GHAST_priv8,代码行数:31,代码来源:UDPServerService.cs


示例18: NewComingConnection

        private static void NewComingConnection(IAsyncResult result)
        {
            try
            {

                Socket s = result.AsyncState as Socket;
                StateObject state = new StateObject();
                int bytesTransferred = 0;
                byte[] data = null;
                Socket handler = s.EndAccept(out data, out bytesTransferred, result);
                //first 4 bytes data will be in data.  i don't know why bytesTransferrd is 56

                state.CommandType = (CommandType)BitConverter.ToInt32(data, 0);
                state.WorkSocket = handler;
                Console.WriteLine("New Connection commandType:" + state.CommandType);

                HandleCommandType(state);

            }
            catch (SocketException ex)
            {

            }
            finally
            {
                allDone.Set();
            }
        }
开发者ID:xwj90,项目名称:Clover.Server,代码行数:28,代码来源:Server.cs


示例19: Receive

 public void Receive(StateObject state = null, AsyncCallback asyncCallBack = null)
 {
     if (state == null) { state = new StateObject(); }
     if (asyncCallBack == null) { asyncCallBack = new AsyncCallback(ReceiveCallback); }
     state.WorkSocket = socket;
     socket.BeginReceive(state.Buffer, 0, state.BufferSize, 0, asyncCallBack, state);
 }
开发者ID:lirongjun0926,项目名称:Farseer.Net,代码行数:7,代码来源:ClientSocket.cs


示例20: Main

        static int Main(string[] args)
        {
            // Коннектимся
            byte[] addr = new byte[4];
            addr[0] = 192;
            addr[1] = 168;
            addr[2] = 1;
            addr[3] = 200;

            client.BeginConnect(new IPAddress(addr), port, new AsyncCallback(ConnectCallback), client);

            while(!client.Connected) { };

            StateObject state = new StateObject();
            state.workSocket = client;

            // Настраиваемся на приём
            client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);

            while(true)
            {
                string data = Console.ReadLine();
                if(data == "close")
                {
                    client.Close();
                    while(true) { };
                }
                Send(client, ":" + data + "\x0d\x0a");
            };

            return 0;
        }
开发者ID:Sasha7b9,项目名称:Osci,代码行数:32,代码来源:Program.cs



注:本文中的StateObject类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# StateSet类代码示例发布时间:2022-05-24
下一篇:
C# StateManager类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap