2009-10-19 5 views
0

J'essaye d'implémenter un Fitnesse Slim server pour delphi, mais j'ai quelques problèmes avec la communication. Fitnesse lancera mon processus et me donnera un numéro de port comme argument de ligne de commande.Delphi: TTcpServer, connexion réinitialisée lors de la lecture

Ensuite, je suis censé créer un socket au numéro de port donné, et Fitnesse se connectera à ce port.

J'utilise un TTcpServer pour le travail:

TcpServer1.LocalPort := ParamStr(ParamCount); 
TcpServer1.Active := true; 

Dans le OnAccepted() -event, j'envoyer la version du protocole à utiliser, comme indiqué dans les spécifications.

procedure TForm1.TcpServer1Accept(Sender: TObject; 
    ClientSocket: TCustomIpClient); 
var 
    s: ansistring; 
begin 
    ClientSocket.Sendln('Slim -- V0.0', #10); 
    setLength(s, 6); 
    ClientSocket.ReceiveBuf(s, 6); 
end; 

Quand j'appelle ReceiveBuf(), le processus se termine, et FitNesse lance une exception:

java.net.SocketException: Connection reset 

Je l'ai utilisé oSpy pour voir ce que sont envoyés et reçus. Cela montre qu'après que mon code envoie la version du protocole, fitnesse envoie un message, et que la connexion est réinitialisée lorsque j'essaye de recevoir ce message.

Est-ce que quelqu'un sait ce que la raison de ceci peut être? Est-ce que je fais quelque chose de complètement faux? Btw, tout fonctionne bien quand j'utilise le serveur slim java fourni avec fitnesse. oSpy montre alors la même communication, jusqu'à la première lecture. Alors que ma tentative de lecture échoue, celle-ci fonctionne comme prévu.

+1

Salut Vegar, je l'ai écrit encore Fitnesse Slim Server. Mais j'utilise les Indy-Components. Cela fonctionne avec tous les cas de test dans Fitnesse-Wiki mais je ne supporte pas les paquets d'exécution. Pour moi, c'était un test de la nouvelle Rtti-Caractéristiques de Delphi 2010. Donc, il compile uniquement avec Delphi 2010. Je suis très intéressé par le partage de mon code pour obtenir des commentaires. Donc, si vous aimez ou quelqu'un d'autre laisser ici une note. –

+0

Ce serait génial! – Vegar

+0

@Vegar, je ne trouve pas un moyen d'envoyer un message privé à un autre utilisateur de stackoverflow.com, alors puis-je envoyer un e-mail à info sur votre page d'accueil? Je vais envoyer la source demain. –

Répondre

0

un coup d'oeil sur ce site web pour un code source delphi Fit server +

+0

Je crains que ce projet ne soit mort avant de recevoir un soutien minime: - / – Vegar

Questions connexes