2009-10-19 4 views
0

Я пытаюсь реализовать Fitnesse Slim server для delphi, но у вас есть некоторые проблемы с сообщением.Delphi: TTcpServer, сброс соединения при чтении

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, чтобы увидеть, что присылают и получил. Это показывает, что после того, как мой код отправит версию протокола, фитнес отправит сообщение назад и что соединение будет сброшено, когда я попытаюсь получить это сообщение.

Кто-нибудь знает, в чем причина этого? Я делаю что-то совершенно не так?

Btw, все работает нормально, когда я использую java slim server, который поставляется с адаптером. Затем oSpy показывает одно и то же сообщение, вплоть до первого чтения. Хотя моя попытка прочитать не удается, эта работа работает так, как ожидалось.

+1

Привет Vegar, я написал FitNesse тонкий сервер еще. Но я использую Indy-Components. Он работает со всеми тестовыми примерами в Physe-Wiki, но я не поддерживаю Runtime Packages. Для меня это был тест новых Rtti-функций Delphi 2010. Поэтому он компилируется только с Delphi 2010. Мне очень нравится делиться своим кодом, чтобы получить обратную связь. Поэтому, если вам нравится, или кто-то еще оставит здесь записку. –

+0

Было бы здорово! – Vegar

+0

@Vegar, я не могу найти способ отправить личное сообщение другому пользователю stackoverflow.com, так что я могу отправить электронную почту на вашу домашнюю страницу? Завтра отправлю источник. –

ответ

0

посмотреть на данном веб-сайте для delphi Fit server + исходный код в

+0

Я боюсь, что проект умер, прежде чем они получили тонкую поддержку: - / – Vegar