Avatar billede xing Novice
06. april 2007 - 17:35 Der er 1 kommentar

fejl ved lukning

Jeg har lavet et meget simpelt chat program

Jeg vil gerne have det sådan at hvis den ene pc lukkes, så begynder den anden at være server, så kontakten kan oprettes hvis den bliver tændt igen.

Jeg for bare en fejl hver gang chat programmet lukkes, noglen hjælp?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;



namespace Jens
{
    public partial class Form1 : Form
    {
        private TcpListener Server;
        private TcpClient Client;
        private StreamReader rdr;
        private StreamWriter wrt;
        private String Bruger;
        private Boolean Erserver;

        public Form1()
        {
            InitializeComponent();
        }
        private void Reader()
        {
            String line;
            while ((line = rdr.ReadLine()) != null)
            {
                if (line == "code0")
                {
                    wrt.Close();
                    rdr.Close();
                    Client.Close();
                    if (Erserver == true)
                    {
                        Server.Stop();
                    }

                    Bitmap bm = (Bitmap)imageList1.Images[0];
                    Icon jc = Icon.FromHandle(bm.GetHicon());
                    tray.Icon = jc;

                    Server = new TcpListener(IPAddress.Any, 1234);
                    Server.Start();
                    Client = Server.AcceptTcpClient();
                    rdr = new StreamReader(Client.GetStream());
                    wrt = new StreamWriter(Client.GetStream());
                    (new Thread(new ThreadStart(Reader))).Start();
                }
                else
                {
                    lock (txtChat)
                    {
                        if (Bruger == "Hanne")
                        {
                            txtChat.Text += ("Jens: " + line + "\n");
                        }
                        else
                        {
                            txtChat.Text += ("Hanne: " + line + "\n");
                        }
                        this.Visible = true;
                    }
                }
            }
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
           
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                //MessageBox.Show("Enter");
                txtChat.AppendText(Bruger+": "+txtChatLine.Text+"\n");
                wrt.WriteLine(txtChatLine.Text);
                wrt.Flush();
                txtChatLine.Clear();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string strIPAddress;
            strIPAddress = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString();
            //MessageBox.Show("IP Address: " + strIPAddress);
            if (strIPAddress == "10.0.0.2")
            {
                Bruger = "Hanne";
                cmdGaester.Text = "Jeg er på vej...";
            }
            else
            {
                Bruger = "Jens";
                cmdGaester.Text = "Gæster...";
            }

            Bitmap ic = (Bitmap)imageList1.Images[0];
            Icon j = Icon.FromHandle(ic.GetHicon());
            tray.Icon = j;

            try
            {
                if (Bruger == "Hanne")
                {
                    Client = new TcpClient("10.0.0.20", 1234);
                }
                else
                {
                    Client = new TcpClient("10.0.0.2", 1234);
                }

                rdr = new StreamReader(Client.GetStream());
                wrt = new StreamWriter(Client.GetStream());
                (new Thread(new ThreadStart(Reader))).Start();

                Erserver = false;

                Bitmap ii = (Bitmap)imageList1.Images[1];
                Icon jj = Icon.FromHandle(ii.GetHicon());
                tray.Icon = jj;
            }
            catch (Exception ex)
            {
                Bitmap bm = (Bitmap)imageList1.Images[1];
                Icon jc = Icon.FromHandle(bm.GetHicon());
                tray.Icon = jc;

                Server = new TcpListener(IPAddress.Any, 1234);
                Server.Start();
                Client = Server.AcceptTcpClient();
                rdr = new StreamReader(Client.GetStream());
                wrt = new StreamWriter(Client.GetStream());
                (new Thread(new ThreadStart(Reader))).Start();

                Erserver = true;

            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void cmdNed_Click(object sender, EventArgs e)
        {
            //while((Form1.ActiveForm.Top<1000))
            //{
            //    Form1.ActiveForm.Top += 5;
            //    Form1.ActiveForm.Left += 5;
            //    Thread.Sleep(5);
            //}
            this.Visible = false;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            wrt.WriteLine("code0");

            wrt.Flush();
            wrt.Close();
            rdr.Close();
            Client.Close();
            if (Erserver == true)
            {
                Server.Stop();
            }
           
            Application.Exit();
        }

        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            this.Visible = true;
        }

        private void cmdGaester_Click(object sender, EventArgs e)
        {
            if (Bruger == "Hanne")
            {
                txtChat.AppendText("Hanne: Jeg er på vej...\n");
                wrt.WriteLine("Jeg er på vej...");
            }
            else
            {
                txtChat.AppendText("Jens: Her er gæster i forhallen...\n");
                wrt.WriteLine("Her er gæster i forhallen...");
            }
            wrt.Flush();
        }
    }
}
Avatar billede lasserasch Juniormester
10. april 2007 - 16:11 #1
Kunne du måske fortælle hvilken fejl du får? Kunne godt tænke mig at afprøve din kode. Kunne du evt. sende den til mig på lr@skare.dk, så vil jeg da gerne give det et forsøg og se om jeg evt. kan finde ud af hvad der går galt!

7Lasse
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester