我想爲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然後顯示相同的通信,直到第一次讀取。雖然我的閱讀嘗試失敗,但這一次按預期工作。
Vegar嗨,我已經寫了FitNesse的超薄服務器呢。但我使用Indy-Components。它適用於Fitnesse-Wiki中的所有測試用例,但我不支持運行時軟件包。對我來說,這是對Delphi 2010新Rtti-Features的測試。所以它只能在Delphi 2010上編譯。我非常有興趣分享我的代碼以獲得一些反饋。所以如果你喜歡或其他人在這裏留下一張紙條。 – 2009-10-20 07:39:20
那太棒了! – Vegar 2009-10-20 08:06:27
@Vegar,我沒有找到一種方法發送私人消息到其他的stackoverflow.com用戶,所以我可以發送電子郵件到您的主頁上的信息?我明天將發送消息。 – 2009-10-20 10:07:41