Servus alle miteinander,
ich begrüße alle recht herzlich, ich würde gerne ein paar hex-Werte über TCP schicken.
Ich nehme eine Textbox, wandle die Zahlen daraus in ein Byte-Array und schicke diesen über TCP raus.
So alles in allem geht das auch.
Aber.
Wenn ich jetzt mehrere Textboxen habe dadurch auch mehrere Byte[]'s und ich diese schicke kommen die Werte auch an, aber leider versetzt zwischen jeden Wert werden LEER-Werte geschrieben. So das die nicht hintereinander geschickt werden sondern mit Lücken.
Nun meine Frage, ist das normal oder kann ich daran noch irgendetwas ändern?
Hier erstelle ich einen Socket.
m_socClient = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
Nun versuche ich diese Byte[] zu schicken, entweder getrennt, oder zusammengesetzt
Byte[] senden = new Byte[29];
senden[0] = 0xaa;
senden[1] = 0x55;
senden[2] = 0x01;
senden[3] = Convert.ToByte(a1);
senden[4] = Convert.ToByte(b1);
senden[5] = Convert.ToByte(c1);
senden[6] = Convert.ToByte(d1);
senden[7] = Convert.ToByte(e1);
senden[8] = Convert.ToByte(f1);
senden[9] = Convert.ToByte(g1);
senden[10] = Convert.ToByte(h1);
senden[11] = Convert.ToByte(i1);
senden[12] = Convert.ToByte(j1);
senden[13] = Convert.ToByte(k1);
senden[14] = Convert.ToByte(l1);
senden[15] = Convert.ToByte(m1);
senden[16] = Convert.ToByte(n1);
senden[17] = Convert.ToByte(o1);
senden[18] = Convert.ToByte(p1);
senden[19] = Convert.ToByte(q1);
senden[20] = Convert.ToByte(r1);
senden[21] = Convert.ToByte(s1);
senden[22] = Convert.ToByte(t1);
senden[23] = Convert.ToByte(u1);
senden[24] = Convert.ToByte(v1);
senden[25] = Convert.ToByte(w1);
senden[26] = Convert.ToByte(x1);
senden[27] = Convert.ToByte(y1);
senden[28] = Convert.ToByte(z1);
m_socClient.Send(senden, 0, senden.Length, SocketFlags.None);
byte[] send = new byte[data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length
+ g1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length
+ r1.Length + s1.Length + t1.Length + u1.Length + v1.Length + w1.Length + x1.Length + y1.Length + z1.Length];
System.Buffer.BlockCopy(data_send, 0, send, 0, data_send.Length);
System.Buffer.BlockCopy(a1, 0, send, data_send.Length, a1.Length);
System.Buffer.BlockCopy(b1, 0, send, data_send.Length + a1.Length, b1.Length);
System.Buffer.BlockCopy(c1, 0, send, data_send.Length + a1.Length + b1.Length, c1.Length);
System.Buffer.BlockCopy(d1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length, d1.Length);
System.Buffer.BlockCopy(e1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length, e1.Length);
System.Buffer.BlockCopy(f1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length, f1.Length);
System.Buffer.BlockCopy(g1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length, g1.Length);
System.Buffer.BlockCopy(h1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length, h1.Length);
System.Buffer.BlockCopy(i1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length, i1.Length);
System.Buffer.BlockCopy(j1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length, j1.Length);
System.Buffer.BlockCopy(k1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length, k1.Length);
System.Buffer.BlockCopy(l1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length, l1.Length);
System.Buffer.BlockCopy(m1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length, m1.Length);
System.Buffer.BlockCopy(n1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length, n1.Length);
System.Buffer.BlockCopy(o1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length, o1.Length);
System.Buffer.BlockCopy(p1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length, p1.Length);
System.Buffer.BlockCopy(q1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length, q1.Length);
System.Buffer.BlockCopy(r1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length, r1.Length);
System.Buffer.BlockCopy(s1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length, s1.Length);
System.Buffer.BlockCopy(t1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length, t1.Length);
System.Buffer.BlockCopy(u1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length + t1.Length, u1.Length);
System.Buffer.BlockCopy(v1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length + t1.Length + u1.Length, v1.Length);
System.Buffer.BlockCopy(w1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length + t1.Length + u1.Length + v1.Length, w1.Length);
System.Buffer.BlockCopy(x1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length + t1.Length + u1.Length + v1.Length + w1.Length, x1.Length);
System.Buffer.BlockCopy(y1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length + t1.Length + u1.Length + v1.Length + w1.Length + x1.Length, y1.Length);
System.Buffer.BlockCopy(z1, 0, send, data_send.Length + a1.Length + b1.Length + c1.Length + d1.Length + e1.Length + f1.Length + g1.Length + h1.Length + i1.Length + j1.Length + k1.Length + l1.Length + m1.Length + n1.Length + o1.Length + p1.Length + q1.Length + r1.Length + s1.Length + t1.Length + u1.Length + v1.Length + w1.Length + x1.Length + y1.Length, z1.Length);
m_socClient.Send(send, 0, send.Length, SocketFlags.None);
m_socClient.Send(data_send, 0, data_send.Length, SocketFlags.None);
m_socClient.Send(a1, 0, a1.Length, SocketFlags.None);
m_socClient.Send(b1, 0, b1.Length, SocketFlags.None);
m_socClient.Send(c1, 0, c1.Length, SocketFlags.None);
m_socClient.Send(d1, 0, d1.Length, SocketFlags.None);
m_socClient.Send(e1, 0, e1.Length, SocketFlags.None);
m_socClient.Send(f1, 0, f1.Length, SocketFlags.None);
m_socClient.Send(g1, 0, g1.Length, SocketFlags.None);
m_socClient.Send(h1, 0, h1.Length, SocketFlags.None);
m_socClient.Send(i1, 0, i1.Length, SocketFlags.None);
m_socClient.Send(j1, 0, j1.Length, SocketFlags.None);
m_socClient.Send(k1, 0, k1.Length, SocketFlags.None);
m_socClient.Send(l1, 0, l1.Length, SocketFlags.None);
m_socClient.Send(m1, 0, m1.Length, SocketFlags.None);
m_socClient.Send(n1, 0, n1.Length, SocketFlags.None);
m_socClient.Send(o1, 0, o1.Length, SocketFlags.None);
m_socClient.Send(p1, 0, p1.Length, SocketFlags.None);
m_socClient.Send(q1, 0, q1.Length, SocketFlags.None);
m_socClient.Send(r1, 0, r1.Length, SocketFlags.None);
m_socClient.Send(s1, 0, s1.Length, SocketFlags.None);
m_socClient.Send(t1, 0, t1.Length, SocketFlags.None);
m_socClient.Send(u1, 0, u1.Length, SocketFlags.None);
m_socClient.Send(v1, 0, v1.Length, SocketFlags.None);
m_socClient.Send(w1, 0, w1.Length, SocketFlags.None);
m_socClient.Send(x1, 0, x1.Length, SocketFlags.None);
m_socClient.Send(y1, 0, y1.Length, SocketFlags.None);
m_socClient.Send(z1, 0, z1.Length, SocketFlags.None);
Aber leider funktioniert nicht so wie ich das möchte.
Damit ihr ein Vorstellung bekommt was ich meine:
Der Soll-Zustand ist FFC0FFC0FFC0FFC0FFC0
der Ist-Zustand ist FFC0000FFC00000FFC00000FFC0
und das macht mir kirre.
Ich hoffe ihr könnt mir helfen dieses Problem zu lösen.
Schonmal vorab herzlichen Dank
Viele Grüße
Daniel Girndt
Hallo und willkommen,
sorry, das gleich zu schreiben, aber schmeiß den Code weg und fange nochmal mit den Grundlagen (Arrays und Datentypen) an.
Und dann fange klein an, d.h. erst einen Text schicken, dann 2 usw.
Stehen denn vor dem versenden die richtigen werte drinn?? *in den byte arrays
[Edit:
Grundlagen sind immer gut, bevor man damit anfängt etwas komplizierteres zu programmieren;
Tipp:
Zum Grundlagen lernen bitet sich das GalileoOpenboock( Visual C# 2012 - Das umfassende Handbuch ) an.
Hallo danisahne123,
wirkt so als ob du eine Text verschicken willst. Den Code den du momentan benutzt ist für viele Fehler anfällig ( durch vertippen und so ).
Also mein Vorschlag, um den Gedanken von Th69 zu präsisieren:
Mache aus den vielen kleinen Teilen einen großen string, zieh ein Encoding drüber und verschicke so den ganzen Text mit einmal.
Falls du ganze Objekte verschicken möchtest, schau mal hier rein http://msdn.microsoft.com/de-de/library/system.runtime.serialization.formatters.binary.binaryformatter(v=vs.110).aspx
Gruß
Der_Blob