private void PushLocalBuffer(byte[] buffer, int offset, int count) { if ((_ReceiveOffset + count) > _ReceiveBuffer.Length) { throw new Exception("客户端信息数据超出当前接收缓存大小!"); } Array.Copy(buffer, offset, _ReceiveBuffer, _ReceiveOffset, count); _ReceiveOffset += count; Console.WriteLine("添加数据缓存 当前缓存长度:{0}", _ReceiveOffset); List <byte[]> messagebuffers = MessageCoding.MessageDecoding(ref _ReceiveBuffer, ref _ReceiveOffset); foreach (var mm in messagebuffers) { Console.WriteLine("提取报文信息"); MemoryStream ms = new MemoryStream(mm, 0, mm.Length); CMD_LG_CTL_REGIST mss2 = Serializer.Deserialize <CMD_LG_CTL_REGIST>(ms); Console.WriteLine("account:{0},code:{1},psd:{2}", mss2.account, mss2.code, mss2.psw); } }
/// <summary> /// 单击控件,弹出消息的确认提示框 /// </summary> /// <param name="control">控件</param> /// <param name="message">提示消息</param> public static void ShowConfirmDialog(System.Web.UI.WebControls.WebControl control, string m) { MessageCoding mc = new MessageCoding(true); //通过代码得到消息内容 string message = mc[m]; control.Attributes.Add("onclick", "return confirm('" + message + "');"); }
/// <summary> /// 在页面中,显示消息提示对话框,并进行页面跳转 /// </summary> /// <param name="page">页面</param> /// <param name="message">提示信息</param> /// <param name="url">目标URL</param> public static void ShowDialogAndRedirect(System.Web.UI.Page page, string m, string url) { MessageCoding mc = new MessageCoding(true); //通过代码得到消息内容 string message = mc[m]; page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>alert('" + message + "');window.location=\"" + url + "\"</script>"); }
/// <summary> /// 提示弹出框,点确定后关闭,并刷新父窗体 /// </summary> /// <param name="page">页面</param> /// <param name="title">标题</param> /// <param name="message">内容</param> public static void YMPromptDialogAndFreshParentPage(System.Web.UI.Page page, string t, string m) { MessageCoding mc = new MessageCoding(true); ///通过代码得到消息标题 string title = mc[t]; //通过代码得到消息内容 string message = mc[m]; page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' >ymPrompt.setDefaultCfg({ autoClose: false ,iframe:false}); ymPrompt.alert('" + message + "', 220, 130, '" + title + "', function(tp) { try{ parent.ymPrompt.close(); parent.window.location.href = parent.window.location.href;}catch(err){ ymPrompt.close(); window.location.href = window.location.href;} return false;});</script>"); }
/// <summary> /// 弹出一个对话框,并在该对话框中显示指定页面的内容 /// </summary> /// <param name="page">页面</param> /// <param name="title">标题</param> /// <param name="pageUrl">内容页面的Url</param> /// <param name="width">宽度</param> /// <param name="height">高度</param> public static void YMPromptParentShowPageContentDialog(System.Web.UI.Page page, string t, string pageUrl, int width, int height) { MessageCoding mc = new MessageCoding(true); ///通过代码得到消息标题 string title = mc[t]; page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' >ymPrompt.setDefaultCfg({iframe:true}); parent.ymPrompt.win('" + pageUrl + "'," + width + "," + height + ",'" + title + "');</script>"); }
/// <summary> /// 显示消息提示对话框 /// </summary> /// <param name="page">页面</param> /// <param name="title">标题</param> /// <param name="message">提示消息</param> public static void YMPromptShowDialog(System.Web.UI.Page page, string t, string m) { MessageCoding mc = new MessageCoding(true); ///通过代码得到消息标题 string title = mc[t]; //通过代码得到消息内容 string message = mc[m]; page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' >ymPrompt.setDefaultCfg({iframe:false}); ymPrompt.alert({title:'" + title + "',message:'" + message + "',height:130,width:220});</script>"); }
/// <summary> /// 发送 /// </summary> public void Write(UserToken token, byte Type, byte area, byte command, object message) { SocketModel model = new SocketModel(); model.Type = Type; model.Area = area; model.command = command; model.message = message; byte[] result = MessageCoding.encode(model); result = LengthCoding.EnCode(result); token.Writed(result); }
public static void YMPromptShowDialogWithEdit(System.Web.UI.Page page, string t, string m) { MessageCoding mc = new MessageCoding(true); ///通过代码得到消息标题 string title = mc[t]; //通过代码得到消息内容 string message = mc[m]; page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' >ymPrompt.setDefaultCfg({ iframe:false,autoClose: false }); ymPrompt.alert('" + message + "', 220, 130, '" + title + "', function(tp) { if (tp == 'ok') { history.go(-2); } else { history.go(-2);} return false;});</script>"); }
/// <summary> /// 显示只包含提示信息的弹出框,并设置对话框的高度和宽度 /// </summary> /// <param name="page">页面</param> /// <param name="title">标题</param> /// <param name="content">内容</param> /// <param name="width">宽度</param> /// <param name="height">高度</param> public static void YMPromptShowContentDialog(System.Web.UI.Page page, string t, string m, int width, int height) { MessageCoding mc = new MessageCoding(true); ///通过代码得到消息标题 string title = mc[t]; //通过代码得到消息内容 string Content = mc[m]; page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' >ymPrompt.setDefaultCfg({iframe:false}); ymPrompt.win({message:'" + Content + "',width:" + width + ",height:" + height + ",msgCls:'ym-content',title:'" + title + "'});</script>"); }
/// <summary> /// 在页面中,显示消息提示对话框,并进行页面跳转到顶级页面(Target的值为top) /// </summary> /// <param name="page">页面</param> /// <param name="message">提示信息</param> /// <param name="url">目标URL</param> public static void ShowDialogAndTopRedirect(System.Web.UI.Page page, string m, string url) { MessageCoding mc = new MessageCoding(true); //通过代码得到消息内容 string message = mc[m]; StringBuilder sbScriptString = new StringBuilder(); sbScriptString.Append("<script language='javascript' defer>"); sbScriptString.AppendFormat("alert('{0}');", message); sbScriptString.AppendFormat("top.location.href='{0}'", url); sbScriptString.Append("</script>"); page.ClientScript.RegisterStartupScript(page.GetType(), "message", sbScriptString.ToString()); }
static void CreatOneConnect() { try { int port = 2012; string host = "127.0.0.1"; IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEndPoint(ip, port); //把ip和端口转化为IPEndPoint实例 Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建一个Socket Console.WriteLine("Conneting..."); c.Connect(ipe); //连接到服务器 CMD_LG_CTL_REGIST rep = new CMD_LG_CTL_REGIST(); rep.account = "root"; rep.code = "bsadsdfasf"; rep.psw = "123456"; MemoryStream ms = new MemoryStream(); Serializer.Serialize <CMD_LG_CTL_REGIST>(ms, rep); byte[] entityData = ms.ToArray(); byte[] messagedate = MessageCoding.MessageEncoding(entityData); c.Send(messagedate, messagedate.Length, 0); c.Send(messagedate, messagedate.Length, 0); c.Send(messagedate, messagedate.Length, 0); c.Send(messagedate, messagedate.Length, 0); c.Send(messagedate, messagedate.Length, 0); c.Send(messagedate, messagedate.Length, 0); //for (int i = 0; i < 3; i++) //{ // string sendStr = "hello!This is a socket test"; // byte[] bs = Encoding.ASCII.GetBytes(sendStr); // Console.WriteLine("Send Message"); // c.Send(bs, bs.Length, 0);//发送测试信息 // string recvStr = ""; // byte[] recvBytes = new byte[1024]; // int bytes; // bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息 // recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes); // Console.WriteLine("Client Get Message:{0}", recvStr);//显示服务器返回信息 //} Console.Write("断开连接"); //c.Close(); } catch (ArgumentNullException e) { Console.WriteLine("ArgumentNullException: {0}", e); } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); } }
/// <summary> /// Splits a message into byte arrays taking the characters into account. /// ASCII or Unicode are treated differently. /// </summary> /// <param name="message"></param> /// <param name="coding"></param> /// <returns></returns> public static byte[][] SplitMessage(string message, out MessageCoding coding) { coding = MessageCoding.GSM8; decimal parts = 1; var part = 1; var chars_used = 0; var chars_sms = 160; // find the message coding. foreach (var m in message.Trim()) { if (Charset7Bit.Any(c => c == m)) { chars_used = chars_used + 1; } else if (Charset7BitExt.Any(c => c == m)) { chars_used = chars_used + 2; } else { coding = MessageCoding.Unicode; chars_used = message.Length; break; } } var fixedString = message.Trim(); //AppendEscToAllExtended(message.Trim()); var textBytes = GetBytes(fixedString); int maximumMultipartMessageSegmentSize = ((coding == MessageCoding.Unicode) ? 67 : 134); // number of characters byte[] byteSingleMessage = textBytes; byte[][] byteMessagesArray = null;//SplitUnicodeMessage(byteSingleMessage, maximumMultipartMessageSegmentSize); if (coding == MessageCoding.GSM8) { if (chars_used > 160) { // split byteMessagesArray = SplitUnicodeMessage(byteSingleMessage, maximumMultipartMessageSegmentSize); } else { // normal byte[][] segments = new byte[1][]; segments[0] = byteSingleMessage; byteMessagesArray = segments; } } else { if (chars_used > 70) { byteMessagesArray = SplitUnicodeMessage(byteSingleMessage, maximumMultipartMessageSegmentSize); } else { // normal byte[][] segments = new byte[1][]; segments[0] = byteSingleMessage; byteMessagesArray = segments; } } return(byteMessagesArray); }