SendStream ... ok ... mais ReceiveStream ??

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 21 sept. 2008 à 12:37
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Derniè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 ... :'(

Quelqu'un détient-il la clé de mon problème ?

Cordialement, Bacterius !

4 réponses

Utilisateur anonyme
21 sept. 2008 à 12:48
Salut,

On se fait un Buf ? .   ReceiveStream n'existe pas mais qu'est ce qui t'empeche de créer ta propre routine en utilisant ReceiveBuf .

Alors une ptite baisse de régime mon pépère ?
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
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

Cordialement, Bacterius !
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
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;

Ca serait mieux.

Cordialement, Bacterius !
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
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;

Voilà, là c'est la bonne ^^

Cordialement, Bacterius !
0
Rejoignez-nous