public string ClientInit(NetworkStream stream) { // Send Panel Infomation to Client byte[] sendInitBuffer = new byte[Constant.INIT_PACKET_SIZE]; PanelInit panel = new PanelInit(); panel.Type = (int)PacketType.panelInfo; panel.mypencil = childForm.mypencil; panel.mylines = childForm.mylines; panel.myrect = childForm.myrect; panel.mycircle = childForm.mycircle; panel.npencil = childForm.npencil; panel.nline = childForm.nline; panel.nrect = childForm.nrect; panel.ncircle = childForm.ncircle; panel.index = childForm.index; // Serialize MemoryStream ms = new MemoryStream(Constant.INIT_PACKET_SIZE); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, panel); ms.ToArray().CopyTo(sendInitBuffer, 0); stream.Write(sendInitBuffer, 0, sendInitBuffer.Length); stream.Flush(); // Receive ClientID from Client stream.Read(readBuffer, 0, Constant.PACKET_SIZE); m_initializeClass = (Initialize)Packet.Desserialize(readBuffer); return(m_initializeClass.clientID); }
public void Init() { // Receive Panel Information from Server byte[] readInitBuffer = new byte[Constant.INIT_PACKET_SIZE]; stream.Read(readInitBuffer, 0, Constant.INIT_PACKET_SIZE); // Desserialize MemoryStream ms = new MemoryStream(Constant.INIT_PACKET_SIZE); foreach (byte b in readInitBuffer) { ms.WriteByte(b); } ms.Position = 0; BinaryFormatter bf = new BinaryFormatter(); Object obj = bf.Deserialize(ms); ms.Close(); m_panelInitClass = (PanelInit)obj; childForm.mypencil = m_panelInitClass.mypencil; childForm.mylines = m_panelInitClass.mylines; childForm.myrect = m_panelInitClass.myrect; childForm.mycircle = m_panelInitClass.mycircle; childForm.npencil = m_panelInitClass.npencil; childForm.nline = m_panelInitClass.nline; childForm.nrect = m_panelInitClass.nrect; childForm.ncircle = m_panelInitClass.ncircle; childForm.index = m_panelInitClass.index; // Draw Panel childForm.panel.Invalidate(true); childForm.panel.Update(); // Send ClientID to Server Initialize init = new Initialize(); init.clientID = txtID.Text; Packet.Serialize(init).CopyTo(sendBuffer, 0); Send(); }