Hab den Beitrag schon mal in einem anderem Forum gepostet, von daher einfach nochmal eine Kopie davon =)
Hallo liebes Forum.Ich habe folgendes Problem :Ich schreibe gerade ein Programm mit dem Daten an ein Gerät gesendet werden sollen über einen Netzwerkport.Da ich ehrlich gesagt nicht weiss, wo der Fehler bei mir sein soll, poste ich mal den ganzen Quellcode.Ich habe schon mal nen Netzwerksniffer mitlaufen lassen, und der hat auch, als ich mich mit dem anderen Rechner verbunden, ein Signal empfangen von meinem Rechner, als ich dann aber einen einfachen String in Bytes senden wollte, hat es nicht funktiniert, obwohl er laut meinem Programm verbunden war. Vielleicht lkönnt ihr mir ja weiter helfen. =)
Bitte nicht über wirren Quellcode wundern, bin noch blutiger Anfänger Wink
Danke schonmal im Vorraus ..
Besser ?!
Hallo liebes Forum.Ich habe folgendes Problem :Ich schreibe gerade ein Programm mit dem Daten an ein Gerät gesendet werden sollen über einen Netzwerkport.Da ich ehrlich gesagt nicht weiss, wo der Fehler bei mir sein soll, poste ich mal den ganzen Quellcode.Ich habe schon mal nen Netzwerksniffer mitlaufen lassen, und der hat auch, als ich mich mit dem anderen Rechner verbunden, ein Signal empfangen von meinem Rechner, als ich dann aber einen einfachen String in Bytes senden wollte, hat es nicht funktiniert, obwohl er laut meinem Programm verbunden war. Vielleicht lkönnt ihr mir ja weiter helfen. =)
Code:
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; using System.Net.Sockets; namespace Netzwerk { public partial class Form1 : Form { Form2 Form2 = new Form2(); Form3 Form3 = new Form3(); //socket für die Kommunikation deklarieren public Socket Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); //Name : Send_Byte_Array --> Array, welches an Datenempfänger gesendet werden soll private byte[] send_b_arr; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { //IP - Adresse in Variable schreiben string ip_add = textBox1.Text; //Variable für den NetzwerkPort deklarieren und in Integer Wert umwandeln, a aus textBox gelesen wird int port = Convert.ToInt32(textBox2.Text); //IP-Adresse aus der Variablen in eine Zeichenfolge konvertieren IPAddress ip = IPAddress.Parse(ip_add); //KoOmmunikationsinformationen in Variable (IPEndPoin) schreiben IPEndPoint ip_end = new IPEndPoint(ip, port); button2.Enabled = true; try { //Socket mit vorher bekommen Verbindungsdaten ansprechen Socket.Connect(ip_end); //Wenn die Verbindung besteht, wird es dem Benutzer durch MessageBox dargestellt if (Socket.Connected) { MessageBox.Show("Die Verbindung wurde erfolgreich hergstellt."); } } catch { MessageBox.Show("Es kann keine Verbindung erstellt werden.", "Verbindungsprobleme", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch { MessageBox.Show("Die von ihnen angegebenen Werte sind nicht kompatibel.", "Falsche Werte", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button3_Click(object sender, EventArgs e) { try { //IP - Adresse in Variable schreiben string ip_add = textBox1.Text; //Variable für den NetzwerkPort deklarieren und in Integer Wert umwandeln, a aus textBox gelesen wird int port = Convert.ToInt32(textBox2.Text); //IP-Adresse aus der Variablen in eine Zeichenfolge konvertieren IPAddress ip = IPAddress.Parse(ip_add); //KoOmmunikationsinformationen in Variable (IPEndPoin) schreiben IPEndPoint ip_end = new IPEndPoint(ip, port); //Wieder Verbindung mit dem Socket herstellen, da er möglicherweise geschossen wurde Socket.Connect(ip_end); //Die Zeichenfolge, welche verschickt werden soll, in ein ByteArray schreiben send_b_arr = Encoding.ASCII.GetBytes(richTextBox1.Text); for (int i = 0; i < send_b_arr.Length; i = i + 1) { //ByteArray mit Zeichenfolge abschicken Socket.Send(send_b_arr, SocketFlags.None); string index = ""; index = index + send_b_arr; } //Vorgang in Protokoll schreiben Form2.listView1.Items.Add(richTextBox1.Text); } catch { //Wenn das Senden nicht funktioniert, wird MessageBox mit Meldung gezeigt MessageBox.Show("Etwas stimmt mit der Verbindung nicht!", "Verbindungsprobleme", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void button2_Click(object sender, EventArgs e) { //Socket wird geschlossen, true --> besagt, dass Socket wieder aufgerufen werden kann Socket.Disconnect(true); } private void button4_Click(object sender, EventArgs e) { Form3.Show(); } private void button5_Click(object sender, EventArgs e) { Form2.Show(); } } }
Bitte nicht über wirren Quellcode wundern, bin noch blutiger Anfänger Wink
Danke schonmal im Vorraus ..
Besser ?!
Comment