我想实现一个FitNesse的超薄服务器德尔福,但有一些问题的通信。
FitNesse的开始我的过程,并给我一个端口号作为命令行参数。
然后,我应该建立在给定的端口号的套接字,并FitNesse的将连接到该端口。
我使用该工作的TTcpServer:
TcpServer1.LocalPort := ParamStr(ParamCount);
TcpServer1.Active := true;
在OnAccepted()-event,我送的协议版本来使用,如在规范中指定。
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的超薄服务器一切工作正常。 oSpy然后示出了相同的通信,一直到第一读取。 当我尝试读取失败,这一次按预期工作。