Hey,
sorry das ich mich jetzt erst melde, hatte viel mit Arbeit und Schule zu tun.
Erstmal vielen Dank für die schnelle Antwort.
Leider bekomme ich jetzt einen anderen Fehler, und ich habe auch mit Googlen nichts gefunden. Vielleicht liegt es daran, wie ich Google.
Na ja, vielleicht könnt ihr mir dabei ja helfen.
Title: "InvalidOpertaionExeption wurde nicht behandelt".
Message: "Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement rtbConsole erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."
Hier nochmal der ganze Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using System.Net; using System.Threading; using Extensions;
namespace ServerAndClientWinForms { public partial class Server : Form { static TcpListener tcpListener; private static NetworkStream networkStream; private static Socket socketForClient;
public Server() { InitializeComponent(); }
private void Server_Load(object sender, EventArgs e) { }
private void cmdStart_Click(object sender, EventArgs e) { Thread newThread = new Thread(new ThreadStart(WaitForClients)); newThread.Start(); }
private void WaitForClients() { var ipAdress = IPAddress.Parse("127.0.0.1"); int port = 9050;
tcpListener = new TcpListener(ipAdress, port);
tcpListener.Start(); WriteConsole("Server Startet");
WriteConsole("Server wurde gestartet. Server wurde mit IP: " + ipAdress.ToString() + "und dem Port: " + port.ToString() + "Gestartet"); while (true) { Socket socketForClient = tcpListener.AcceptSocket(); NetworkStream networkStream = new NetworkStream(socketForClient);
} }
private void cmdStop_Click(object sender, EventArgs e) { tcpListener.Stop(); }
private void Listeners() { if (socketForClient.Connected) { WriteConsole("Client:" + socketForClient.RemoteEndPoint + " connected to server.");
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream); System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream);
while (true) { string theString = streamReader.ReadLine(); WriteConsole("Client " + socketForClient.RemoteEndPoint + "send a message: " + theString + "\n"); if (theString == "exit") break; }
streamReader.Close(); networkStream.Close(); streamWriter.Close(); } socketForClient.Close(); WriteConsole("Press any key to exit from server program"); Console.ReadKey(); }
private void WriteConsole(string text) { rtbConsole.Text += text + "\n"; } } } |
Ich hoffe, das ihr mir dabei nochmal helfen könnt.
Lieben Gruß
JoKaBo