コード例 #1
0
        //字符串处理函数 List<int> 如 2,6,8,9 -> 010001011
        public static string ListToBinStr(List <int> intList)
        {
            StringBuilder sb     = new StringBuilder(string.Empty);
            int           intMax = 0;

            for (int index = 0; index < intList.Count; index++)
            {
                if (intMax < intList[index])
                {
                    intMax = intList[index];
                }
            }

            string strTmp = string.Empty;

            strTmp = strTmp.PadRight(intMax, '0');

            int intTmp = 0;

            for (int index = 0; index < intList.Count; index++)
            {
                intTmp = intList[index];
                strTmp = StrUtils.ReplaceSubStr(strTmp, "1", intTmp - 1);
            }
            return(strTmp);
        }
コード例 #2
0
        //Udp广播发送数据
        private bool SendData(UdpClient client, IPEndPoint endpoint, byte[] data, ref string strErr)
        {
            strErr = "";

            if (endpoint == null)
            {
                strErr = "IPEndPoint cannot be null";
                return(false);
            }
            if (!IsOpen)
            {
                strErr = "UdpClient is not opened";
                return(false);
            }
            try
            {
                IsStop = false;
                int sendCount = client.Send(data, data.Length, endpoint);
                if (sendCount != data.Length)
                {
                    strErr = string.Format("send data:{0} falied!{2}", StrUtils.BytesToHexStr(data), UtilityTool.GetSysErrMsg());
                    return(false);
                }
            }
            catch (Exception e)
            {
                strErr = string.Format("UdpClient({0}) send data failed:{1}", client?.Client?.LocalEndPoint, e.Message);
                return(false);
            }
            return(true);
        }
コード例 #3
0
        //仿照Delphi TStringList  将“1,2,4,33,15”字符串存放到一个List<string>中,函数内部创建此List<int>
        public static List <int> GetIntDelimitedList(string aSourceStr, string aDelimtedText = ",")
        {
            List <int> delimitedList = new List <int>();

            delimitedList.Clear();
            string[] strAry = aSourceStr.Split(aDelimtedText.ToCharArray());
            foreach (string str in strAry)
            {
                delimitedList.Add(StrUtils.StrToIntDef(str, 0));
            }
            return(delimitedList);
        }
コード例 #4
0
        /// <summary>
        /// Udp发送数据(使用utf-8编码)
        /// </summary>
        /// <param name="endpoint"></param>
        /// <param name="data"></param>
        /// <param name="strErr"></param>
        /// <returns></returns>
        public bool SendData(IPEndPoint endpoint, string hexData, ref string strErr)
        {
            strErr = "";
            if (!StrUtils.CheckIsHEXStr(hexData))
            {
                strErr = string.Format("{0} is not valid hex string!", hexData);
                return(false);
            }
            byte[] buf = StrUtils.HexStrToBytes(hexData);

            foreach (var client in UDPClients)
            {
                if (!SendData(client, endpoint, buf, ref strErr))
                {
                    return(false);
                }
            }
            return(true);
        }