Exemple #1
0
        private SocketReceiveData TimeoutRead()
        {
            try
            {
                byte[]   data   = new byte[1004];
                EndPoint client = new IPEndPoint(IPAddress.Any, 0);
                int      count  = socketClient.ReceiveFrom(data, ref client);
                LogHelper.LogUtil.WXHOOKUI.InfoFormat("client: [{0}]", client);
                byte[] ret = new byte[count];
                Array.Copy(data, ret, count);

                SocketReceiveData socketReceiveData = new SocketReceiveData();
                socketReceiveData.ReceiveData         = data;
                socketReceiveData.ClientOfReceiveFrom = client;

                return(socketReceiveData);
            }
            catch (SocketException e)
            {
                if (e.SocketErrorCode == SocketError.TimedOut)
                {
                    return(null);
                }
                throw;
            }
        }
Exemple #2
0
        private void HandleRecvByte(SocketReceiveData socketReceiveData)
        {
            byte[] b = socketReceiveData.ReceiveData;

            byte[] b1 = new byte[4];
            byte[] b2 = new byte[1001];

            System.Array.Copy(b, b1, 4);
            System.Array.Copy(b, 4, b2, 0, 1000);

            int    type    = BitConverter.ToInt32(b1, 0);
            string content = Encoding.UTF8.GetString(b2);
            int    _index  = content.IndexOf("\0");

            content = content.Substring(0, _index);

            if (this.InvokeRequired)
            {
                HandleMessageCB stcb = new HandleMessageCB(HandMessagecb);
                this.Invoke(stcb, new object[] { type, content, socketReceiveData.ClientOfReceiveFrom });
            }
        }