011
18.02.2006, 12:27 Uhr
~aha
Gast
|
gut hier der quellcode uwe :-)
C++: |
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.Net.Sockets; using System.Threading; using System.IO; using System.Diagnostics;
namespace Schulchat {
/// <summary> /// Zusammenfassung für Form1. /// </summary> public class Form1 : System.Windows.Forms.Form { int a; private System.Windows.Forms.RichTextBox sende; private System.Windows.Forms.Button button1; private System.Windows.Forms.RichTextBox gotmsg; private System.Windows.Forms.Button send; /// <summary> /// Erforderliche Designervariable. /// </summary> private System.ComponentModel.Container components = null;
public Form1() { // // Erforderlich für die Windows Form-Designerunterstützung // InitializeComponent();
// // TODO: Fügen Sie den Konstruktorcode nach dem Aufruf von InitializeComponent hinzu // }
/// <summary> /// Die verwendeten Ressourcen bereinigen. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose();
} } base.Dispose( disposing ); }
#region Vom Windows Form-Designer generierter Code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> private void InitializeComponent() { this.gotmsg = new System.Windows.Forms.RichTextBox(); this.sende = new System.Windows.Forms.RichTextBox(); this.button1 = new System.Windows.Forms.Button(); this.send = new System.Windows.Forms.Button(); this.SuspendLayout(); // // gotmsg // this.gotmsg.Location = new System.Drawing.Point(8, 24); this.gotmsg.Name = "gotmsg"; this.gotmsg.Size = new System.Drawing.Size(512, 224); this.gotmsg.TabIndex = 0; this.gotmsg.Text = ""; this.gotmsg.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged); // // sende // this.sende.Location = new System.Drawing.Point(8, 296); this.sende.Name = "sende"; this.sende.Size = new System.Drawing.Size(504, 80); this.sende.TabIndex = 1; this.sende.Text = ""; // // button1 // this.button1.Location = new System.Drawing.Point(8, 384); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(72, 24); this.button1.TabIndex = 2; this.button1.Text = "Chatstart"; this.button1.Click += new System.EventHandler(this.button1_Click); // // send // this.send.Location = new System.Drawing.Point(440, 384); this.send.Name = "send"; this.send.Size = new System.Drawing.Size(72, 24); this.send.TabIndex = 3; this.send.Text = "Senden"; this.send.Click += new System.EventHandler(this.send_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(528, 478); this.Controls.Add(this.send); this.Controls.Add(this.button1); this.Controls.Add(this.sende); this.Controls.Add(this.gotmsg); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false);
} #endregion
/// <summary> /// Der Haupteinstiegspunkt für die Anwendung. /// </summary> static void Main() { Application.Run(new Form1()); }
private void Form1_Load(object sender, System.EventArgs e) { } public void SendMessage() { while (true) { int a = 1; if (File.Exists("C:\\set.txt")) { if (a == 1) { sende.Text = "test"; sende.Invalidate(); sende.Update(); //MessageBox.Show("fett", "fd"); a = 0; } try { File.Delete("C:\\set.txt"); Thread.Sleep(500); } catch { //nix } } } }
public void GetMessage() { //Objekt der Klasse Form1 erstellen Form1 obj = new Form1(); //string muss nicht immer neu erstellt werden string st = " hi "; //5 tausenstel warten bis es weiter geht Thread.Sleep(50); //Listener machen auf port 4711 TcpListener msg = new TcpListener(4711); //starten msg.Start(); //Socket erstellen Socket smsg = msg.AcceptSocket(); //Network Stream zum kommunizieren erstellen NetworkStream ntwk = new NetworkStream(smsg); //Stream Reader erstellen um Nachrichten zu empfangen StreamReader x = new StreamReader(ntwk); //StreamWriter erstellen um Nachrichten zu senden StreamWriter y = new StreamWriter(ntwk); //Den Stream falls gesendet auch einlesen //muss jetzt mit try verbunden werden, falls nicths gsendet wurde darf kein fehler entstehen //Empfangen muss auch immer geprüft werden!!! while (true) { try { new Thread(new ThreadStart(obj.SendMessage)).Start(); //Nachricht an den "Client" senden y.WriteLine(st); //Stream flushen y.Flush(); //Lesen st = x.ReadLine(); //In ner MessageBox darstellen MessageBox.Show(st, "test"); //wegen schreiben testen
} catch { //im prinzip kein fehler; einfach keine nachrichten reinbekommen //programm entlasten indem kein befehl ausgeführt wird } //Socket und Listener nicht beenden! } }
public void setport() { //In dieser Funktion werden die Ports geöffnet //Der Übergangsparameter port muss immer +1 für jeden weiteren Port sein //Falls nicht wird der Catch Teil ausgelöst int zahl = 0; Int32 port = 12001; string lese = "Keine Daten reingekommen";
while (zahl <= 10) { TcpListener listen = new TcpListener(port); try { listen.Start(); } catch { //scheißegal } try { Socket socket1 = listen.AcceptSocket();
if (socket1.Connected) {
//Hier kommt dann später der ganze Code rein NetworkStream news = new NetworkStream(socket1); StreamReader wartenews = new StreamReader(news); lese = wartenews.ReadLine();
listen.Stop(); } } catch { //so was von scheißegal } zahl++; port = port + 1; } }
private void button1_Click(object sender, System.EventArgs e) { /* Hier wird der Chat initialisiert, das bedeutet die Listener werden gesetzt * die in der Port Range von 12000-13000 liegen. 1000 Ports Spielraum, falls * irgendwelche Ports dazwischen besetzt sein sollten.*/ Int32 porttcp = 12001; //Port Nummer 1 ist auf Standart 12001
//Ein neues Objekt der Klasse Form1 anlegen Form1 objekt = new Form1(); //Erster Thread starten, der dann die Ports öffnet und auf Verbindugen wartet new Thread(new ThreadStart(objekt.setport)).Start(); //Eine 10tel Sekunde warten Thread.Sleep(100); new Thread(new ThreadStart(objekt.GetMessage)).Start();
}
private void richTextBox1_TextChanged(object sender, System.EventArgs e) { }
private void send_Click(object sender, System.EventArgs e) { //StreamWriter setzen StreamWriter test = new StreamWriter("C:\\set.txt"); test.WriteLine("NICHT LÖSCHEN!!!!!!!!!!!!!!!!!"); test.Close(); /* In der Funktion GetMessages kann dann geprüft werden ob * die Datei set.txt existiert und falls dies der Fall ist, * soll der Text gesendet werden.*/
} } }
|
|