Автор Тема: Free Pascal blcksock synapse  (Прочетена 1551 пъти)

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Free Pascal blcksock synapse
« -: Jul 19, 2013, 18:59 »
Здравейте,

Малко помощ ако някой може да помогне.

правя си едно семпло echo сървърче и ползвам този Unit: http://nxpascal.googlecode.com/svn/trunk/src/nxNetwork.pas
за да създам TTCPBlockSocket  връзка с клиент/сървър, като сървъра искам да ми върне ехо ( като начало, а после да сметне нещо и да ми върне резултата на клиента ) обаче нещо удрям на камък. Принципно ако ги ползвам на localhost нещата вървят, но ако клиента ми е на друга машина не приема отговора от сървъра, освен ако не го пратя 5-6 пъти ( тогава приема отговора от сървъра ).

Кода ми е семпъл:

http://pastebin.com/DB2pXjky

Би трябвало от процедурата
procedure TTest.ServerData(sender: TConnection; data:
  {$IFDEF fpc}PByte{$ELSE}PByteArray{$ENDIF}; size,ID: integer);


при пристигане на някакви данни от клиента да ги върне с
TTCPServer(server).SendString(-1,'blqblq');

Ама нъцки. Връща само ако киент/сървъра са на една машина или ако пратя от клиента данните 5-6 пъти ( няма определен брой ).

Просто не се изпълнява
TTCPServer(server).SendString(-1,'blqblq');
ако се помещава в  процедурата TTest.ServerData

Също така данните се пращат ако ги извикам след Begin-a с ReadLn или if keypressed. Ако са в процедурата по-горе няма връщане :)  [_]3

Аз поне си мисля, че проблема е в това, че сокета се опитва да прати данни докато приема и не успява. Чудя се ако отговора го пусна в отделна нишка, която да се изпълни след получаване на данните дали няма да стане номера, но не знам само защо това чудо работи ако клиента и сървъра са на една машина.


« Последна редакция: Jul 19, 2013, 19:06 от runtime »
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: Free Pascal blcksock synapse
« Отговор #1 -: Jul 19, 2013, 22:27 »
Всъщност се оправих!
Проблема беше, че в унита таймаута беше твърде нисък. След малка корекция всичко е Ок [_]3
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Pascal
Хардуерни и софтуерни проблеми
Beliq 4 2565 Последна публикация Jul 03, 2002, 12:52
от Beliq
Pascal
Общ форум
bobitu 0 1112 Последна публикация Apr 27, 2005, 17:55
от bobitu
UNIX и Pascal
Настройка на програми
aspirina97 4 2214 Последна публикация Apr 11, 2009, 22:11
от bop_bop_mara
Lazarus (Free Pascal) и база данни
Общ форум
laskov 5 3868 Последна публикация Dec 05, 2012, 12:49
от laskov
Free pascal String2Hex
Общ форум
runtime 2 1641 Последна публикация Sep 13, 2012, 16:43
от remotex