0

Delphi 用のFitnesse Slim サーバーを実装しようとしていますが、通信に問題があります。

Fitnesse は私のプロセスを開始し、コマンドライン引数としてポート番号を与えてくれます。

次に、指定されたポート番号でソケットを作成すると、Fitnesse はそのポートに接続します。

仕事にTTcpServerを使用しています:

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

OnAccepted( ) イベントでは、仕様で指定されているように、使用するプロトコル バージョンを送信します。

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;

ReceiveBuf( ) を呼び出すと、プロセスが終了し、fitnesse が例外をスローします。

java.net.SocketException: Connection reset

oSpyを使用して、何が送受信されるかを確認しました。コードがプロトコル バージョンを送信した後、fitnesse がメッセージを返信し、このメッセージを受信しようとすると接続がリセットされることがわかります。

これの理由が何であるか知っている人はいますか?私は何か完全に間違っていますか?

ところで、fitnesse に付属の Java Slim サーバーを使用すると、すべて正常に動作します。oSpy は、最初の読み取りまで、同じ通信を表示します。読み取りに失敗しましたが、これは期待どおりに機能します。

4

1 に答える 1

0

Delphi Fit サーバー+ ソース コードについては、この Web サイトをご覧ください。

于 2010-01-13T18:22:08.200 に答える