2009-10-19 67 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