Azt nem lehet adatokat átvinni a idudpclient

Azt nem lehet adatokat átvinni a idUDPClient / idUDPServer

Üdvözlünk! Írok a chat a helyi hálózaton. Használom Indy-yskie UDP-kliens és szerver UDP. Amikor elküld egy üzenetet, hogy a következő probléma: ha adatokat küldeni idUdpClient.Send (ADATA: string), akkor is sikerül ezt a sort a szerver idUDPServer.onUDPRead esemény, azaz a sorok szállítási problémák merülnek fel.
De ha azt tegye az adatokat (például típus byte) módszer idUdpClient.SendBuffer (var ABuffer, const ABytesCount: integer) vételekor egy adat szerver (OnUDPRead esemény) kapok „érvénytelen” adatfolyam AData: Áramlat.
Itt van a kód a „rossz” esetekben:

// Adatok küldése
eljárás TMainFrm.Button1Click (Sender: TObject);
var buf: TMemoryStream;
# XA0; # XA0; s: string;
kezdődik
buf: = Tmemorystream.Create;
F: = 6;
Buf.WriteBuffer (F, 1);
Buf.Position: = 0;
IdUdpClient1.SendBuffer (BUF, Buf.size);
s: = IdUdpClient1.ReceiveString;
Ha s = "" majd ShowMessage ( "Nincs válasz")
mást ShowMessage (s);

# XA0; Ha Z = 6, akkor ShowMessage ( "Ok12");
# XA0; s: = "kaptam";
# XA0; A Abinding do
# XA0; SendTo (PeerIP, PeerPort, s [1], hossza (s));
# XA0; Buf.Free;

Tud valaki magyarázni nekem, mi a probléma?

Természetesen lehetőség van, és összhangban rögzíteni bármilyen típusú adat, de először meg kell alakítani az adatokat egy húr küldésekor, küldési módot Send (kapott string), és elő a ellenkező irányú konverzió (string az adatok típusát) a recepción. Számomra ez a megközelítés valahogy nem tetszik :).
De valamilyen oknál fogva nem működik SendBuffer módszer? A kezem görbe vagy egy hiba INDY?

Most ez nem szükséges Indy, de megpróbálom. Ha Indyah a SendBuffer is használt típustalan puffer, meg kell:
IdUdpClient1.SendBuffer (Buf.Memory, Buf.size);
Majd adott esetben telepíteni 0 állás


> IdUdpClient1.SendBuffer (BUF, Buf.size);

Ehehe. És úgy gondolja, hogy az Ön által küldött ilyen módon?


> Van egy kanyarodás, vagy ez egy hiba INDY?

Ez nem hiba Indy, de a kezét. Ahelyett, görbék, és tapasztalatlan. ;-)

Tehát mi Nike így küldi?


> Mi Nike így küldi?


> PChar (@F) ^

Hogy miért. Akkor csak számok és módon, a szerkezet, és egy statikus tömb továbbítja mind típustalan változó. A dinamikus tömbök nehezebb.


> Nike # XA0; (16.10.05 09:03)

Az összes, hogy azt mondta, már vannak úgy, hogy a méret a továbbított adatok nem haladhatja meg a maximális méretet adatcsomagok, vagy nem tud látni a jó szerencsét.

Sorki hiba, gyors kéz szaggatott (=

Memória: 0,75 MB
Idő: 0,046 c