2009-10-19 13 views
0

我想为delphi实现一个Fitnesse Slim server,但在通信方面有一些问题。德尔福:TTcpServer,当读取时连接重置

Fitnesse将开始我的过程,并给我一个portnumber作为命令行参数。

然后,我应该在给定的端口号创建一个套接字,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 slim服务器时,一切正常。 oSpy然后显示相同的通信,直到第一次读取。虽然我的阅读尝试失败,但这一次按预期工作。

+1

Vegar嗨,我已经写了FitNesse的超薄服务器呢。但我使用Indy-Components。它适用于Fitnesse-Wiki中的所有测试用例,但我不支持运行时软件包。对我来说,这是对Delphi 2010新Rtti-Features的测试。所以它只能在Delphi 2010上编译。我非常有兴趣分享我的代码以获得一些反馈。所以如果你喜欢或其他人在这里留下一张纸条。 – 2009-10-20 07:39:20

+0

那太棒了! – Vegar 2009-10-20 08:06:27

+0

@Vegar,我没有找到一种方法发送私人消息到其他的stackoverflow.com用户,所以我可以发送电子邮件到您的主页上的信息?我明天将发送消息。 – 2009-10-20 10:07:41

回答

0

看看这个网站的delphi Fit server +源代码

+0

恐怕项目在他们得到苗条的支持之前就死了: - / – Vegar 2010-01-14 20:13:21