public void SendRequest(string toClient, int n) { Message messageSendRequest = new Message("301", UserInfo.UserID, toClient, n); byte[] bufferSend = SerializationUnit.SerializeObject(messageSendRequest); socketLine.Send(bufferSend); }
private void BtnSendMsg_Click(object sender, RoutedEventArgs e) { try { if (this.cmbSocket.Text.Trim() == "") { MessageBox.Show("请选择目标EndPoint"); return; } string ipSend = this.cmbSocket.Text.Trim(); #region 对消息的处理 string strMsg = txtMsg.Text.Trim().ToString();//得到需要发送的消息 Message messageSend = new Message("000", "127.0.0.1:6666", ipSend, strMsg); byte[] bufferSend = SerializationUnit.SerializeObject(messageSend); dicSocket[ipSend].Send(bufferSend); //发送完成,清空文本输入窗口 txtMsg.Text = ""; WriteLog(string.Format("{0} To {1} 发送:{2} 成功", messageSend.FromClient, ipSend, messageSend.Msg)); #endregion } catch { MessageBox.Show("给客户端发送消息错误."); } }
//在窗口加载的时候,像服务器发送第一次数据 private void Window_Loaded(object sender, RoutedEventArgs e) { string userId = UserInfo.UserID; Message messageSend = new Message("001", userId, socketLine.LocalEndPoint.ToString(), "绑定用户ip地址"); byte[] bufferSend = SerializationUnit.SerializeObject(messageSend); socketLine.Send(bufferSend); }
public void SendFile(string toClient, byte[] buffer, int r) { //包装消息 Message messageSendFile = new Message("201", UserInfo.UserID, toClient, buffer); byte[] bufferSend = SerializationUnit.SerializeObject(messageSendFile); socketLine.Send(bufferSend); }
public void SendMessage(string toClient, string msg) { //包装消息 Message messageSend = new Message("101", UserInfo.UserID, toClient, msg); byte[] bufferSend = SerializationUnit.SerializeObject(messageSend); socketLine.Send(bufferSend); }
/// <summary> /// 获取扩展板加热保护温度.并显示到界面 /// </summary> private void GetExtHeadOverHeat() { byte[] buf = new byte[64]; uint bufsize = (uint)buf.Length; int ret = CoreInterface.GetEpsonEP0Cmd(0x7f, buf, ref bufsize, 0, 3); if (ret != 0) { ExtHeadOverHeat overHeat = (ExtHeadOverHeat)SerializationUnit.BytesToStruct(buf.Skip(2).ToArray(), typeof(ExtHeadOverHeat)); numHeatingProtectionTemp.Value = (decimal)(overHeat.OverHeatTmp / 100f); } }
/// <summary> /// 设置扩展板加热保护温度 /// </summary> private void SetExtHeadOverHeat() { ExtHeadOverHeat headOverHeat = new ExtHeadOverHeat(); headOverHeat.Flag = new char[] { 'H', 'H', 'O', 'T' }; headOverHeat.OverHeatTmp = (ushort)(numHeatingProtectionTemp.Value * 100); byte[] buf = SerializationUnit.StructToBytes(headOverHeat); uint bufsize = (uint)buf.Length; int ret = CoreInterface.SetEpsonEP0Cmd(0x7f, buf, ref bufsize, 0, 3); if (ret == 0) { MessageBox.Show("Set Over Heat temp error!"); } }
public int ReadHeader(byte[] buffer) { SrcWidth = SrcHeight = 0; LiyuRipHEADER headerTemp; CoreInterface.GetLiyuRipHEADER(_workjob.FileLocation, out headerTemp, IsCsPrt); CoreInterface.GetLiyuRipHEADER(_workjob.FileLocation, out header1, IsCsPrt); SrcWidth = header1.nImageWidth; SrcHeight = header1.nImageHeight; if (_isDouble4CJob) { CoreInterface.GetLiyuRipHEADER(_workjob.FileLocation2, out header2, IsCsPrt); ColorNum = header1.nImageColorNum + header2.nImageColorNum; headerTemp.nAChannel = (byte)header1.nImageColorNum; headerTemp.nBChannel = (byte)header2.nImageColorNum; headerTemp.nImageColorNum = ColorNum; } else { ColorNum = header1.nImageColorNum; } BytePerLine = header1.nBytePerLine; byte[] buftemp = SerializationUnit.StructToBytes(headerTemp); if (IsCsPrt) { int readSize = Marshal.SizeOf(typeof(CAISHEN_HEADER)); FileStream stream = new FileStream(_workjob.FileLocation, FileMode.Open, FileAccess.Read); BinaryReader reader = new BinaryReader(stream); buftemp = reader.ReadBytes(readSize); if (_isDouble4CJob) { CAISHEN_HEADER csHeader = (CAISHEN_HEADER)SerializationUnit.BytesToStruct(buftemp, typeof(CAISHEN_HEADER)); csHeader.uColors = ColorNum; buftemp = SerializationUnit.StructToBytes(csHeader); } } Buffer.BlockCopy(buftemp, 0, buffer, 0, buftemp.Length); return(buftemp.Length); }
public void ApplyToBoard() { int status = 0; status = OnGetRealTimeFromUI(); #if false //////////////////////////////// byte onelight = 1; if (m_CheckBoxOneLight.Checked) { onelight = 1; } else { onelight = 0; } const int port = 1; const byte PRINTER_PIPECMDSIZE = 26; byte [] m_pData = new byte[PRINTER_PIPECMDSIZE + 2]; //First Send Begin Updater m_pData[0] = 2 + 1; m_pData[1] = 0x45; //One Light mode m_pData[2] = onelight; if (CoreInterface.SetPipeCmdPackage(m_pData, m_pData[0], port) == 0) { MessageBox.Show(ResString.GetEnumDisplayName(typeof(UIError), UIError.SaveRealTimeFail)); return; } #endif byte[] uvPowerLevelMap = SerializationUnit.StructToBytes(_UvPowerLevelMap); uint length = (uint)uvPowerLevelMap.Length; int ret = CoreInterface.SetEpsonEP0Cmd(0x68, uvPowerLevelMap, ref length, 0, 0x01); if (ret == 0) { MessageBox.Show(ResString.GetResString("SetFailed")); } if (SPrinterProperty.IsGongZengUv()) { GZUVX2Param.UVX1Power = (ushort)numUVX1Power.Value; GZUVX2Param.UVX2Power = (ushort)numUVX2Power.Value; if (!EpsonLCD.SetGZUVX2Param(GZUVX2Param)) { MessageBox.Show(ResString.GetResString("SetFailed")); } } if (CoreInterface.SetUVStatus(status) != 0) { if ((status & 0xf) == 0 || (status & 0xf0) == 0) { MessageBox.Show(ResString.GetResString("OpenUV")); } } else { MessageBox.Show(ResString.GetEnumDisplayName(typeof(UIError), UIError.SaveRealTimeFail)); } if (PubFunc.IsSupportUVOffsetDistance()) { UVOffsetDistanceUI uvOffset = GetUVOffsetFromUI(); EpsonLCD.SetUVOffsetDistToFw(uvOffset, fPulsePerInchX); } }
private void InkStatistics_Load(object sender, EventArgs e) { List <string> color = new List <string>(); SPrinterProperty PrinterProperty = new SPrinterProperty(); CoreInterface.GetSPrinterProperty(ref PrinterProperty); int colornum = CoreConst.OLD_MAX_COLOR_NUM;//PrinterProperty.GetRealColorNum(); for (int i = 0; i < colornum; i++) { ColorEnum_Short ink = ColorEnum_Short.N; if (Enum.IsDefined(typeof(ColorEnum_Short), PrinterProperty.eColorOrder[i])) { ink = (ColorEnum_Short)PrinterProperty.eColorOrder[i]; } color.Add(ink.ToString()); } InkOfMonths InkOfMonths = new InkOfMonths(); AreaOfMonths AreaOfMonths = new AreaOfMonths(); SBoardInfo sBoardInfo = new SBoardInfo(); if (CoreInterface.GetBoardInfo(0, ref sBoardInfo) != 0) { string filePath = InkAreaStaticsHelper.GetInkStaticsFileName(sBoardInfo.m_nBoardSerialNum); if (File.Exists(filePath)) { FileStream fs = new FileStream(filePath, FileMode.Open); BinaryReader br = new BinaryReader(fs); byte[] ink = new byte[Marshal.SizeOf(typeof(InkOfMonths))]; byte[] area = new byte[Marshal.SizeOf(typeof(AreaOfMonths))]; ink = br.ReadBytes(ink.Length); area = br.ReadBytes(area.Length); InkOfMonths = (InkOfMonths)SerializationUnit.BytesToStruct(ink, typeof(InkOfMonths)); AreaOfMonths = (AreaOfMonths)SerializationUnit.BytesToStruct(area.ToArray(), typeof(AreaOfMonths)); fs.Close(); DataGridViewTextBoxColumn acCode = new DataGridViewTextBoxColumn(); acCode.Name = "color"; acCode.DataPropertyName = ""; acCode.HeaderText = ""; dataGridViewInkStatistics.Columns.Insert(0, acCode); for (int i = 0; i < 8; i++) { dataGridViewInkStatistics.Rows.Add(); dataGridViewInkStatistics.Rows[i].Cells["color"].Value = color[i]; } DataGridViewTextBoxColumn months; // 获取对应语言的日期时间格式 //DateTimeFormatInfo info = Thread.CurrentThread.CurrentUICulture.DateTimeFormat; List <uint> allColorInk = new List <uint>() { 0, 0, 0, 0, 0, 0, 0, 0 }; DateTime dateTime = BYHXSoftLock.GetDateTime(); // 优先用加密狗时间,避免机器时间错误 DateTime now = new DateTime(dateTime.Year - 1, dateTime.Month, dateTime.Day); for (int i = 0; i < InkOfMonths.inkOfColors.Length; i++) { now = now.AddMonths(1); months = new DataGridViewTextBoxColumn { Name = "", DataPropertyName = "", HeaderText = string.Format("{0}-{1}", now.Year, now.Month)//info.GetMonthName(i+1) //获取月份名称 }; dataGridViewInkStatistics.Columns.Insert(i + 1, months); } now = new DateTime(dateTime.Year - 1, dateTime.Month, dateTime.Day); for (int i = 0; i < InkOfMonths.inkOfColors.Length; i++) { now = now.AddMonths(1); int monthIndex = now.Month - 1; for (int j = 0; j < InkOfMonths.inkOfColors[monthIndex].colors.Length; j++) { //dataGridViewInkStatistics.Rows[j].Cells[monthIndex + 1].Value = InkOfMonths.inkOfColors[monthIndex].colors[j].ToString("f2"); dataGridViewInkStatistics.Rows[j].Cells[i + 1].Value = InkOfMonths.inkOfColors[monthIndex].colors[j].ToString("f2"); allColorInk[j] += InkOfMonths.inkOfColors[monthIndex].colors[j]; } } //插入全年合计列 months = new DataGridViewTextBoxColumn { Name = "", DataPropertyName = "", HeaderText = ResString.GetResString("StrCurYearAmountInTotal")// "合计" }; dataGridViewInkStatistics.Columns.Insert(13, months); for (int i = 0; i < allColorInk.Count; i++) { dataGridViewInkStatistics.Rows[i].Cells[13].Value = string.Format("{0}L", (allColorInk[i] / 1000f).ToString("f2")); } ////插入历史合计列 //months = new DataGridViewTextBoxColumn //{ // Name = "", // DataPropertyName = "", // HeaderText = ResString.GetResString("StrHistoryAmountInTotal")+"(L)"// "合计" //}; //// 获取并显示历史合计数据 //SPwdInfo pwdinfo = new SPwdInfo(); //if (CoreInterface.GetPWDInfo(ref pwdinfo) != 0) //{ // for (int i = 0; i < allColorInk.Count && i < pwdinfo.nDurationInk.Length; i++) // { // dataGridViewInkStatistics.Rows[i].Cells[13].Value = pwdinfo.nDurationInk[i].ToString("f2"); // } //} /////////////////////////////面积////////////////////////////////// now = new DateTime(dateTime.Year - 1, dateTime.Month, dateTime.Day); float inch2M2 = (100 / 2.54f) * (100 / 2.54f); //平方英寸到平方米的转换系数 double allMonthArea = 0; // 12个月合计打印面积 for (int i = 0; i < 12; i++) { now = now.AddMonths(1); months = new DataGridViewTextBoxColumn { Name = "", DataPropertyName = "", HeaderText = string.Format("{0}-{1}", now.Year, now.Month)// info.GetMonthName(i + 1) }; dataGridViewPrintAreaStatistics.Columns.Insert(i, months); } dataGridViewPrintAreaStatistics.Rows.Add();//添加行 now = new DateTime(dateTime.Year - 1, dateTime.Month, dateTime.Day); for (int i = 0; i < 12; i++) { now = now.AddMonths(1); int monthIndex = now.Month - 1; //dataGridViewPrintAreaStatistics.Rows[0].Cells[monthIndex].Value = (AreaOfMonths.Area[monthIndex] / inch2M2).ToString("f2"); dataGridViewPrintAreaStatistics.Rows[0].Cells[i].Value = (AreaOfMonths.Area[monthIndex] / inch2M2).ToString("f2"); allMonthArea += AreaOfMonths.Area[monthIndex] / inch2M2; } //插入全年合计列 months = new DataGridViewTextBoxColumn { Name = "", DataPropertyName = "", HeaderText = ResString.GetResString("StrCurYearAmountInTotal")// "合计" }; dataGridViewPrintAreaStatistics.Columns.Insert(12, months); // 显示合计 dataGridViewPrintAreaStatistics.Rows[0].Cells[12].Value = allMonthArea.ToString("f2"); ////插入历史合计列 //months = new DataGridViewTextBoxColumn //{ // Name = "", // DataPropertyName = "", // HeaderText = ResString.GetResString("StrHistoryAmountInTotal")// "合计" //}; //dataGridViewPrintAreaStatistics.Columns.Insert(12, months); //// 显示历史合计 //double areaHistory = 0; //if (CoreInterface.GetPrintArea(ref areaHistory) != 0) //{ // double m2 = areaHistory / inch2M2; // dataGridViewPrintAreaStatistics.Rows[0].Cells[12].Value = m2.ToString("f2"); //} } } }
private void Receive(object o) { Socket socketReceive = o as Socket; try { while (true) { //判断接受buffer是否为空 byte[] buffer = new byte[1024 * 1024 * 2]; int len = socketReceive.Receive(buffer); if (len == 0) { //如果得到字符为空,则代表没有接收到数据 break; } else { WriteLog("接收到来自服务器的数据"); byte[] bufferReceive = new byte[len]; for (int i = 0; i < len; i++) { bufferReceive[0] = buffer[0]; } Message messageReceive = SerializationUnit.DeserializeObject(buffer) as Message; string fromFriendID = messageReceive.FromClient;//消息来自哪一个客户端 #region 根据返回的类型进行消息操作 switch (messageReceive.Sign) { #region 000为来自服务器的数据 case "000": break; #endregion #region 101客户端与客户端之间的普通聊天 case "101": //p判断该聊天窗口是否存在,存在则直接调用 if (this.dicChatWindow.ContainsKey(fromFriendID)) { dicChatWindow[fromFriendID].Dispatcher.Invoke( new Action( delegate { dicChatWindow[fromFriendID].ChangeTxtMsgLog( string.Format("{0}: {1}\n{2}\n", dicChatWindow[fromFriendID].Title.ToString(), DateTime.Now.ToString(), messageReceive.Msg)); } ) ); //写日志 WriteLog(string.Format("fromClient:{1}\nMessage:{1}", fromFriendID, messageReceive.Msg)); } else { //该窗口不存在,则打开新的窗口,在进行操作 MessageBox.Show("未完成的工作"); } break; #endregion #region 201 接受图片的事件 case "201": if (this.dicChatWindow.ContainsKey(fromFriendID)) { dicChatWindow[fromFriendID].Dispatcher.Invoke( new Action( delegate { dicChatWindow[fromFriendID].ChangeTxtMsgLog( string.Format("{0}:\n{1}\n", dicChatWindow[fromFriendID].Title.ToString(), "接受图片的事件")); } ) ); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.InitialDirectory = @"C:\Users\58317\Desktop"; saveFileDialog.Title = "请选择要保存的文件"; saveFileDialog.Filter = "所有文件|*.*"; saveFileDialog.ShowDialog(); string path = saveFileDialog.FileName; using (FileStream fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) { fileStream.Write(messageReceive.BufferFile, 0, messageReceive.BufferFile.Length); } WriteLog(string.Format("fromClient:{1}\nMessage:{1}", fromFriendID, "接受图片的事件")); } else { //该窗口不存在,则打开新的窗口,在进行操作 MessageBox.Show("未完成的工作"); } break; #endregion #region 301 客户端对客户端的请求事件 case "301": if (this.dicChatWindow.ContainsKey(fromFriendID)) { #region 判断请求的类型,分别执行不同的操作 switch (messageReceive.Request) { case 1: dicChatWindow[fromFriendID].Dispatcher.Invoke( new Action( delegate { dicChatWindow[fromFriendID].ChangeTxtMsgLog( string.Format("来自{0}: {1}\n请求震动事件\n", dicChatWindow[fromFriendID].Title.ToString(), DateTime.Now.ToString())); dicChatWindow[fromFriendID].ZD(); } ) ); //写日志 // WriteLog(string.Format("fromClient:{1}\n请求震动事件", fromFriendID)); break; } #endregion } else { //该窗口不存在,则打开新的窗口,在进行操作 MessageBox.Show("未完成的工作"); } break; #endregion default: break; } } #endregion //进行内存回收 GC.Collect(); } } catch (Exception ex) { MessageBox.Show("接收服务端发送的消息出错:" + ex.ToString()); } }
private void Receive(Object o) { Socket socketReceive = o as Socket; string userid = ""; try { while (true) { //将接收到额buffer转为Message byte[] buffer = new byte[1024 * 1024 * 2]; int len = socketReceive.Receive(buffer); if (len == 0) { break; } else { //反序列化,将buffer转化为类 WriteLog(string.Format("接收到来自客户端:{0} 的数据", socketReceive.RemoteEndPoint)); byte[] bufferReceive = new byte[len]; for (int i = 0; i < len; i++) { bufferReceive[0] = buffer[0]; } Message messageReceive = SerializationUnit.DeserializeObject(buffer) as Message; string fromClient = messageReceive.FromClient; //从哪里发过来 string toClient = messageReceive.ToClient; //要发到哪去 userid = messageReceive.Sign; //做一个标记 #region 根据协议处理数据 switch (messageReceive.Sign) { #region 001 完成用户ID与端口的绑定 case "001": //数据逻辑处理 dicSocket.Add(messageReceive.FromClient, socketReceive); //将用户id与ip地址绑定 //UI处理以及日志 this.txtLog.Dispatcher.Invoke(receiveCallBack, string.Format("登录用户ID:{0}\n登录的ip地址:{1}", fromClient, socketReceive.RemoteEndPoint.ToString())); //this.cmbSocket.Dispatcher.Invoke(setCmbCallBack, messageReceive.FromClient);//ui控制 WriteLog(string.Format("登录用户ID:{0}\n登录的ip地址:{1}", fromClient, socketReceive.RemoteEndPoint.ToString())); break; #endregion #region 101 完成客户端数据的转发 case "101": if (dicSocket.ContainsKey(fromClient)) { //将对象重新序列化 byte[] sendByte = SerializationUnit.SerializeObject(messageReceive); dicSocket[toClient].Send(sendByte); //写日志 this.txtLog.Dispatcher.Invoke(receiveCallBack, string.Format("fromClient:{0}\ntoClient:{1}\nMessage:{2}\n", fromClient, toClient, messageReceive.Msg)); WriteLog(string.Format("fromClient:{0}\ntoClient:{1}\nMessage:{2}\n", fromClient, toClient, messageReceive.Msg)); } else { MessageBox.Show("服务器找不到该用户"); } break; #endregion #region 201 发送文件的事件 case "201": if (dicSocket.ContainsKey(fromClient)) { //将对象重新序列化 byte[] sendByte = SerializationUnit.SerializeObject(messageReceive); dicSocket[toClient].Send(sendByte); //写日志 this.txtLog.Dispatcher.Invoke(receiveCallBack, string.Format("fromClient:{0}\ntoClient:{1}\nMessage:{2}\n", fromClient, toClient, "转发文件成功")); WriteLog(string.Format("fromClient:{0}\ntoClient:{1}\nMessage:{2}\n", fromClient, toClient, "转发文件成功")); } else { MessageBox.Show("服务器找不到该用户"); } break; #endregion case "301": if (dicSocket.ContainsKey(fromClient)) { //将对象重新序列化 byte[] sendByte = SerializationUnit.SerializeObject(messageReceive); //转发数据 dicSocket[toClient].Send(sendByte); //写日志 this.txtLog.Dispatcher.Invoke(receiveCallBack, string.Format("fromClient:{0}\ntoClient:{1}\nRequest:{2}\n", fromClient, toClient, messageReceive.Request)); WriteLog(string.Format("fromClient:{0}\ntoClient:{1}\nRequest:{2}\n", fromClient, toClient, messageReceive.Request)); } else { MessageBox.Show("服务器找不到该用户"); } break; default: break; } #endregion //进行内存回收 GC.Collect(); } } } catch (Exception ex) { dicSocket.Remove(userid); //MessageBox.Show("接收服务端发送的消息出错:" + ex.ToString()); } }