//字符串处理函数 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); }
//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); }
//仿照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); }
/// <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); }