fejl ved lukning
Jeg har lavet et meget simpelt chat programJeg 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();
}
}
}
