Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
21 sept. 2008 à 12:37
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
21 sept. 2008 à 13:05
Bonjour,
eh bien cette fois j'ai un problème ... (lol)
Vous avez sûrement travaillé avec les Sockets (TServerSocket, TClientSocket) ...
Dans le TClientSocket il existe une routine plus qu'interessante :
SendStream(AStream: TStream);
Malheureusement, dans le TServerSocket, il n'existe aucune routine pour récupérer le stream envoyé (il y a ReceiveText, ReceiveBuf) ...
Alors je pose la question :
pour envoyer un fichier, peut-on passer par Stream (LoadFromFile, SaveToFile), ou doit-on absolument passer par un buffer ?
Passer par un stream me simplifierait la vie mais si il n'y a pas le choix ... :'(
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 21 sept. 2008 à 13:03
procedure ReceiveStream(var AStream: TStream; var Socket: TServerSocket);
begin
if Socket.Socket.ReceiveLength > 0 then
Socket.Socket.ReceiveBuf(AStream, Socket.Socket.ReceiveLength);
end;
En supposant que le buffer envoyé soit un stream ?
Mais je ne sais pas si ça peut marcher :x
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 21 sept. 2008 à 13:04
Ah ouais non ça marche pas ...
petite correction :
procedure ReceiveStream(var AStream: TStream; var Socket: TCustomWinSocket);
begin
if Socket.ReceiveLength > 0 then
Socket.ReceiveBuf(AStream, Socket.Socket.ReceiveLength);
end;
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 21 sept. 2008 à 13:05
Zut encore trompé !
procedure ReceiveStream(var AStream: TStream; var Socket: TCustomWinSocket);
begin
if Socket.ReceiveLength > 0 then
Socket.ReceiveBuf(AStream, Socket.ReceiveLength);
end;