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 服务器+ 源代码

于 2010-01-13T18:22:08.200 回答