Transmettre des fichiers avec ServerSocket

cs_fab56 Messages postés 9 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 14 mars 2008 - 12 avril 2006 à 21:40
 Utilisateur anonyme - 13 avril 2006 à 19:19
Bonjour, j'ai fait un petit serveur avec les composants ServerSocket de Delphi 6.

Bon là j'arrive à traiter les requetes HTTP du clients, quand il tape http://localhost:720/index.html (elle marche sur le port 720)
La variable RequeteRecu vaut index.htm.

J'arrive alors à passer du texte au client mais pas des fichiers et je voudrai passer des images .

mon code à SocketServerClientRead est :

procedure TMyForm.SocketServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
TxtRecu, RequeteRecu, NomClient, Resultat: String;
begin
TxtRecu := Socket.ReceiveText;
RequeteRecu := ExtraireCommande(TxtRecu);
NomClient := ServerSock.Socket.Connections[ServerSock.Socket.ActiveConnections-1].RemoteHost + ' (' +
ServerSock.Socket.Connections[ServerSock.Socket.ActiveConnections-1].RemoteAddress + ')';

{ *** Quelle code je mets pour faire passer des fichiers binaires ***}
Application.ProcessMessages;
Socket.Close;
end;

Merci d'avance pour vos réponses

4 réponses

Utilisateur anonyme
13 avril 2006 à 11:22
Salut,

Depuis l'apparition des composants INDY, TSocket est devenu obsolète. Il est préférable (question de simplicité de codes entre autre) de ne plus les utiliser.

A+
0
cs_fab56 Messages postés 9 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 14 mars 2008
13 avril 2006 à 18:28
Et si je veux utiliser tout de même c'est composants (car bcp moins complexe) ?
0
Utilisateur anonyme
13 avril 2006 à 19:18
Fabrice,

Deux choses :

*Transfert de fichiers par Tsocket : voir la source de Nono40

*La programmation par TSocket est bcp plus complexe si tu le fais proprement (j'insiste bien la-dessus). En effet les composants indy ont deux propriétés très importantes : pas de gestion des erreurs (tu les as pas oubliés j'espère sinon ca va planter au minimum une fois sur dix avec TSocket) et surtout l'utilisation des Streams. Les blocks (blockread ou blockwrite) sont bcp bcp bcp plus lourds. Question taille des fichiers : avec "Indy" les fichiers sont moins gros. Le seul probleme d'indy et le coté bloquant que l'on peut contourner pas le composant antifreeze.

A+
0
Utilisateur anonyme
13 avril 2006 à 19:19
Désolé : Le seul probleme d'indy est le coté bloquant que l'on peut contourner par le composant antifreeze
0
Rejoignez-nous