Forum: Netzwerke
Delphi
by Nogge,
20. Apr 2007
Vllt möchte xxl1 ja einfach auf dieser Ebene arbeiten, um diese besser kennenzulernen oder performance-orientiert zu programmieren.
Zum Problem:
net_s_server.data_recived:= recv( net_s_server.S_server_accepting ,
net_s_server.buffer_rcv , transfer_length(net_s_server.buffer_rcv) , 0);
=> Hier bestimmst Du die Länge des allgemeinen Record-Typs, nicht aber die des gefüllten. Da die Länge...
Forum: Netzwerke
Delphi
by Nogge,
19. Apr 2007
Dein Problem liegt an SizeOf(): Ein Integer ist ein primitiver Datentyp, d.h. er stellt keine Referenz auf ein anderes Objekt dar. Er belegt auf einer 32-bit Architektur 4 Byte. Ein String ist jedoch kein solch ein primitiver Datentyp. Du kannst einen String eher als eine class ansehen, die auf eine Zeichenkette zeigt, d.h. auf ein array of char (in Java ist ein String sogar genau so definiert)....
Forum: Netzwerke
Delphi
by Nogge,
21. Jun 2006
Die Byte-Länge eines Records kann man mithilfe von SizeOf() bestimmen. Dein Code müsste also ungefähr so aussehen:
WinSock.send(FAccSock, ARecord, SizeOf(ARecord), 0);
Forum: Netzwerke
Delphi
by Nogge,
21. Jun 2006
Jo, war ne Verwechslung - sorry.
Forum: Netzwerke
Delphi
by Nogge,
20. Jun 2006
accept reagiert auf
- Connecten eines neuen Clients
- Empfangen von Daten durch einen verbundenen Client (= Buffer hat neuen Inhalt)
d.h. wenn sich ein Client mit deinem Server verbunden hat, wurde der accept-Befehl einmal erfolgreich abgearbeitet. Somit musst du diesen in eine Schleife schreiben, damit nach dem Verbinden eines neuen Clients Daten von diesem empfangen werden können.