Hallo,
ich möchte ein Programm schreiben, mit dem unter anderem eine TCP-Verbindung hergestellt wird. Diese soll bei einem bestimmten Event gestartet werden. Zu diesem Zweck brauche ich ja einen TcpClient. Den kann ich ja mit
TcpClient client = new TcpClient();
bekommen.Nun zu meiner Frage...
Wie schaffe ich es, dass diese Instanz "client" nun in allen Methoden und Events verfügbar ist, wenn ich sie selbst nach einem Event erstellen will.
Zum Verständniss etwas Quellcode:
namespace NetworkClient
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
TcpClient client = new TcpClient();
try
{
listBox1.Items.Add("Verbindungsversuch mit Server über Anschluss 8000.");
client.Connect(IPAddress.Parse("127.0.0.1"), 8000);
listBox1.Items.Add("Verbindung hergestellt.");
// Den Netzwerk-Stream abrufen.
NetworkStream stream = client.GetStream();
// Einen BinaryWriter erstellen, um in den Stream zu schreiben.
BinaryWriter w = new BinaryWriter(stream);
// Einen BinaryReader erstellen, um aus dem Stream zu lesen.
BinaryReader r = new BinaryReader(stream);
// Einen Dialog starten.
w.Write(ClientMessages.RequestConnect);
if (r.ReadString() == ServerMessages.AcknowledgeOK)
{
listBox1.Items.Add("Verbunden.");
}
}
catch (Exception err)
{
MessageBox.Show(err.ToString());
}
}
private void button_send_Click(object sender, EventArgs e)
{
//Hier möchte ich z. B. auf die Instanz "client" bzw. auf die BinaryWriter und -Reader zugreifen können.
}
private void button_stop_Click(object sender, EventArgs e)
{
client.Close();
listBox1.Items.Add("Anschluss geschlossen.");
Connector
}
}
}
namespace SharedComponent
{
public class ServerMessages
{
public const string AcknowledgeOK = "OK";
public const string AcknowledgeCancel = "Cancel";
public const string Disconnect = "Bye";
}
public class ClientMessages
{
public const string RequestConnect = "Hello";
public const string Disconnect = "Bye";
}
}
Danke für eure Hilfe schonmal...