HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi]Winsock recv()
  #1  
Старый 31.07.2008, 10:51
F1kus
Новичок
Регистрация: 03.01.2007
Сообщений: 8
С нами: 10185473

Репутация: 8
По умолчанию [Delphi]Winsock recv()

Такая проблем: при приеме данных если пакет заканчивается программа зависает ожидая окончания и так висит хоть до бесконечности. Пролопатил весь инет нашол тока решение для языка програмирования Kylix и c++ а для дельфи готовых решений нет да и по поводу этого мысслей нету.
Помогите пожалуйста решить проблему.
Зарание спасибо!
 

  #2  
Старый 31.07.2008, 11:34
alamat
Познающий
Регистрация: 06.08.2007
Сообщений: 36
С нами: 9876570

Репутация: 10
По умолчанию

Цитата:
Сообщение от F1kus  
Такая проблем: при приеме данных если пакет заканчивается программа зависает ожидая окончания и так висит хоть до бесконечности. Пролопатил весь инет нашол тока решение для языка програмирования Kylix и c++ а для дельфи готовых решений нет да и по поводу этого мысслей нету.
Помогите пожалуйста решить проблему.
Зарание спасибо!
Делается все просто
Код:
CONST

GP_TIMEOUT=10000;

.....

function recvdata(sock:TSocket):string;
var
  tv : timeval;
  fds : TFDSet;
  buf : array [1..1024] of char;
  res : string;
  r : integer;
  i:integer;
  inc,tmp:integer;
begin
  r:=1;
  while (r>0) do
  begin
    FD_ZERO(fds);
    FD_SET(sock, fds);
    tv.tv_sec := GP_TIMEOUT div 1000;
    tv.tv_usec := (GP_TIMEOUT mod 1000) * 1000;
    i := select(0, @fds, nil, nil, @tv);
    if (i <= 0) then
    begin
      break;
    end;
    r := recv(sock, buf, 1024, 0);
    res:=res+copy(buf,1,r);
  end;
  result:=res;
end;
 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
порт 30040 am@tory Windows 16 26.02.2008 23:08



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...