private void PeerToPeerConnectionClient() { object HostTemp; //NewPack.ChipColor = true; try { while (true) { HostTemp = formatter.Deserialize(P2PConnectStream); if (HostTemp is CPacket.Message) { CPacket.Message receptionMessage = new CPacket.Message(); receptionMessage = HostTemp as CPacket.Message; if (Chat.InvokeRequired) { BeginInvoke(new kdelegate(AddToList), ((CPacket.Message)HostTemp).m_message, 2); } //MessageBox.Show(receptionMessage.m_message); } if (HostTemp is CPacket.LogOut) { CPacket.LogOut LogOut = new CPacket.LogOut(); LogOut = HostTemp as CPacket.LogOut; MessageBox.Show(LogOut.UsersDisconnected + " disconnected"); P2PConnectStream.Close(); P2PConnectStream = null; } if (HostTemp is CPacket.GameData) { //CPacket.GameData ReceivedPacket = new CPacket.GameData(); NewPack = HostTemp as CPacket.GameData; UpdateBoard(NewPack); } if (HostTemp is CPacket.Again) { //MessageBox.Show("You Lost"); //this.EraseBoard(); //CPacket.Again againReceived = new CPacket.Again(); //againReceived = HostTemp as CPacket.Again; // if (againReceived.response == true) // { // this.GameDesign(); //} } if (HostTemp is CPacket.Losing) { MessageBox.Show("You Lost"); } } } catch (System.IO.IOException P2Perror) { } }
private void Send_Click(object sender, EventArgs e) { if (P2PConnectStream != null || !P2P.IsAlive) { CPacket.Message NewMessage = new CPacket.Message(); NewMessage.m_message = TextBoxMessage.Text; Chat.Items.Add(usernametextbox.Text + TextBoxMessage.Text); formatter.Serialize(P2PConnectStream, NewMessage); } else { MessageBox.Show("No connection P2P available"); } }
/*-----------------------------Peer---To---Peer-------*/ private void PeerToPeerConnectionHost() { object HostTemp; //NewPack.ChipColor = true; try { while (true) { HostTemp = formatter.Deserialize(P2PConnectStream); if (HostTemp is CPacket.Message) { CPacket.Message receptionMessage = new CPacket.Message(); receptionMessage = HostTemp as CPacket.Message; if (Chat.InvokeRequired) { BeginInvoke(new kdelegate(AddToList), ((CPacket.Message)HostTemp).m_message, 2); } //MessageBox.Show(receptionMessage.m_message); } if (HostTemp is CPacket.LogOut) { CPacket.LogOut LogOut = new CPacket.LogOut(); LogOut = HostTemp as CPacket.LogOut; MessageBox.Show(LogOut.UsersDisconnected + " disconnected"); if (P2PConnectStream != null || !P2P.IsAlive) { if (which == true)//hostmode { HostListener.Stop(); P2PConnectStream.Close(); P2PConnectStream = null; } if (which == false) { P2PConnectStream.Close(); P2PConnectStream = null; } //P2PConnectStream = null; break;//makes the thread die } } if (HostTemp is CPacket.GameData) { NewPack = HostTemp as CPacket.GameData; UpdateBoard(NewPack); } if (HostTemp is CPacket.LoginPacket) { CPacket.LoginPacket Viewer = new CPacket.LoginPacket(); Viewer = HostTemp as CPacket.LoginPacket; //formatter.Serialize() } if (HostTemp is CPacket.Again) { // MessageBox.Show("You Lost"); //CPacket.Again againReceived = new CPacket.Again(); //againReceived = HostTemp as CPacket.Again; ////if (againReceived.response == true) //{ // this.EraseBoard(); //.GameDesign(); //} } if (HostTemp is CPacket.Losing) { MessageBox.Show("You Lost"); //CPacket.Again againReceived = new CPacket.Again(); //againReceived = HostTemp as CPacket.Again; ////if (againReceived.response == true) //{ // this.EraseBoard(); //.GameDesign(); //} } } } catch (System.IO.IOException P2Perror) { //System.Runtime.Serialization.SerializationException } }