예제 #1
0
        /// <summary>
        /// Description of Listener.
        /// <param name="on_recv" type="RecvHandler(String s)">收到数据后要调用的函数委托</param>
        /// <returns>调用委托函数处理处理数据后返回的结果</returns>
        /// </summary>
        public Listener(RecvHandler on_recv)
        {
            FileStream   fs = new FileStream(file, FileMode.Open);
            StreamReader sr = new StreamReader(fs);

            _listener = new System.Net.HttpListener();
            On_recv   = on_recv;
            _listener.Prefixes.Add(sr.ReadLine().Trim());
            _listener.Start();
            Start();
        }
예제 #2
0
 private IEnumerator ProcPacketQueue(Queue <IPacket> packets, Protocol p)
 {
     while (true)
     {
         int c = 0;
         while (packets.Count > 0 && c < 100000)
         {
             c++;
             IPacket data = packets.Dequeue();
             Debug.Log("<color=red>" + data.GetType() + "</color>", gameObject);
             RecvHandler?.Invoke(data, p);
             //_gm.ProcessPacket(packets.Dequeue());
         }
         yield return(new WaitForFixedUpdate());
     }
 }
        public static void BeginReceive(Socket handler, RecvHandler onRecv)
        {
            var stateObject = new StateObject()
            {
                workSocket = handler,
                onRecv     = onRecv
            };

            try
            {
                handler.BeginReceive(
                    stateObject.buffer, 0, StateObject.BufferSize, 0,
                    new AsyncCallback(ReadCallback), stateObject);
            }
            catch (Exception e)
            {
                Debug.LogError(e.Message);
                onRecv(null, 0);
            }
        }
예제 #4
0
파일: Process.cs 프로젝트: kghost/WTerm
 public Pipe(StreamReader S, RecvHandler H)
 {
     s = S;
     h = H;
 }