Autor Beitrag
Albanac
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 04.10.02 12:10 
wie kann ich als Socket erkennen ob das was reinkommt ein Buffer oder ein Text ist?
oder muss ich das ganze mit try und so machn? Oder gar nen anderen Port benutzen?
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Fr 04.10.02 13:26 
Ich weiß nicht genau, ob man das unterscheiden kann, bin aber der Meinung, das es nicht geht. Ich würde das ganze so lösen, das ich immer zuerst mit SendText einen Code schicke und dann erst SendBuf benutze. Ein Beispiel:
Client: "will jetzt Buffer schicken"
Server: "jo, is scho recht"
Client: startet SendBuf
Server: empfängt mit ReceiveBuf

Hoffe, du hast verstanden was ich ich meine.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
Albanac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 04.10.02 13:32 
ich denk schnon aber dann muss ich aber umgangssprache in die uses liste eintragen, oder?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 04.10.02 13:48 
Hi,

Zitat:
ich denk schnon aber dann muss ich aber umgangssprache in die uses liste eintragen, oder?


Was meinst du damit? Ich habe das jetzt nicht so ganz verstanden.

Egal, also ich kam zwar noch nie in die Verlegenheit das unetrscheiden zu müssen aber ich würde mal sagen, dass es so ist:

Wenn ein Client mit SendText Strings sendet, dann kommen die beim Server an und der Server weist dann - je nach Datentype (SendText oder SendBuf) - die Daten in den Bereich ReceiveText bzw. ReceiveBuf zu. In dem Fall wäre das dann ReceiveText. Werden Daten mit SendBuf geschickt, kommen die Daten eben in ReceiveBuf. Ich weiss nicht, ob es stimmt. Aber das kann man ja testen. Werde es nächste Woche mal ausprobieren :wink:

_________________
Viele Grüße
Jakob
Albanac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 04.10.02 14:09 
eben, wie kann ich die Datentype unterscheiden

das mit der Umgangssprache war ein scherz...
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 04.10.02 14:11 
wieso willst du die unterscheiden? Wenn Text über SendText gesendet wurde, dann stehen die Daten in ReceiveText, wenn die Daten über SendBuf gesendet wurde, dann stehen die in ReceiveBuf. -> Die Komponente übernimmt das für dich.

Achja, bin mir immer noch nicht sicher, ob das 100%-ig so ist.

_________________
Viele Grüße
Jakob
Albanac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 04.10.02 14:30 
hast glaub ich recht....

andere sache:
kann ich feststellen was für ein typ von Buf (welche elemente darin enthalten sind) das war?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 04.10.02 14:34 
Zitat:
kann ich feststellen was für ein typ von Buf (welche elemente darin enthalten sind) das war?


Was hast du denn genau vor? Du kannst die Datenn in ein array of Byte laden und dann versuchen, ob du da irgendwelche FileHeader erkennen kannst. Oder habe ich da was falsch verstanden?

_________________
Viele Grüße
Jakob
Albanac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 04.10.02 18:46 
var recorda : record wurst:string; fleisch: integer; salat: Tstrings end;
var recordb : record knie:bool; arm: TRichEdit; kopf: Char end;

wie kann ich feststellen ob recorda oder b vorliegt?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 04.10.02 21:32 
was man mchen könnte, wäre den Typ von Daten vor dem Senden mit SendBuf zu senden. Damit könntest du dich auf die Situation einstellen.

Wenn die Records konstante Längen haben, könntest du auch die Größe auslesen und an Hand dieser Information könntest du das dann unterscheiden, wobei diese Variante nur eine Notlösung wäre. :wink:

_________________
Viele Grüße
Jakob
Albanac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 04.10.02 21:42 
andere Sache (nochmal)

ich schick in nem Buffer ein TString (inhalt eines Memos) aber irgendwie bekomm ich nix davon (beim auswerten der Variable ist diese leer '()') woran liegts?
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Sa 05.10.02 13:43 
DeCodeGuru hat folgendes geschrieben:
wieso willst du die unterscheiden? Wenn Text über SendText gesendet wurde, dann stehen die Daten in ReceiveText, wenn die Daten über SendBuf gesendet wurde, dann stehen die in ReceiveBuf. -> Die Komponente übernimmt das für dich.

Achja, bin mir immer noch nicht sicher, ob das 100%-ig so ist.


Ich denke nicht, das die Komponente das übernimmt, auf jedenfall meine tat es nicht. Eine Datei oder einen String, den ich mit SendBuf geschickt hatte, konnte ich mit ReceiveBuf, aber auch mit ReceiveText auswerten.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Sa 05.10.02 14:00 
Zitat:

ich schick in nem Buffer ein TString (inhalt eines Memos) aber irgendwie bekomm ich nix davon (beim auswerten der Variable ist diese leer '()') woran liegts?

Sende mal n bissl Code.
Ich würde den Inhalt eines Memo sowieso mit Socket.SendText(Memo1.Text); verschicken. ( Empfang dann folgerlich: Memo1.Text := Socket.ReceiveText)

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...