Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2013, 13:24   #1
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
Печаль Мини-прокси: Фильтровщик пакетов

Добрый день. Задача следующая: организовать между готовым клиент-серверным приложением своё, которое будет принимать пакеты от клиента и посылать серверу. Для этого на форму было положено TServerSocket и TClientSocket.

Код:
procedure TForm1.servClientRead(Sender: TObject; Socket: TCustomWinSocket);
var buf: Array [0..MAX_PACKET_SIZE-1] of Byte;
    len2: Integer;
begin
  if client.Active then begin
    len2 := Socket.ReceiveBuf(buf[0], MAX_PACKET_SIZE);
    client.Socket.SendBuf(Pointer(@buf)^, len2);
  end;
end;

procedure TForm1.clientRead(Sender: TObject; Socket: TCustomWinSocket);
var buf: Array [0..MAX_PACKET_SIZE-1] of Byte;
    len2: Integer;
begin
  if serv.Active then begin
    len2 := Socket.ReceiveBuf(buf[0], MAX_PACKET_SIZE);
    Socket.SendBuf(Pointer(@buf)^, len2);
  end;
end;
В процедуре servClientRead при попытке отослать данные после нескольких секунд теряется соединение. Что я делаю не так?
JoLan вне форума Ответить с цитированием
Старый 12.08.2013, 14:20   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию Пример простого портмапа

Пример простого портмапа
второй архив - некоторые разновидности портмапа
Вложения
Тип файла: zip PortMap_ScktStd.zip (2.6 Кб, 8 просмотров)
Тип файла: zip PortMapExt.zip (5.1 Кб, 5 просмотров)
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 12.08.2013 в 14:29.
Slym вне форума Ответить с цитированием
Старый 12.08.2013, 16:43   #3
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Огромное спасибо, а можно на примере TClientSocket и TServerSocket?
JoLan вне форума Ответить с цитированием
Старый 12.08.2013, 18:34   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Это именно на них, а именно на TServerWinSocket и TClientWinSocket...
внутри TClientSocket и TServerSocket используются они
все это из одного модуля ScktComp.pas

можно без потерь и с минимальными переделками заменить одно на другое
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 12.08.2013 в 18:37.
Slym вне форума Ответить с цитированием
Старый 12.08.2013, 19:02   #5
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Код:
{$IFDEF VCLSock}ScktComp{$ELSE}BlockScktComp{$ENDIF};
Ругается на BlockScktComp, что нет такого модуля.
JoLan вне форума Ответить с цитированием
Старый 12.08.2013, 20:36   #6
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

в каком модуле?
в начале проблемного модуля вставь
{$DEFINE VCLSock}
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 13.08.2013, 13:24   #7
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Помогло, спасибо
JoLan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача пакетов avduevsky Операционные системы общие вопросы 2 28.02.2011 23:29
Отправка пакетов. Маверик Работа с сетью в Delphi 6 30.11.2010 18:01
Декодирование пакетов..!!!! Memfis1992 Работа с сетью в Delphi 9 22.06.2010 18:04
Генератор пакетов Mr_Romik Работа с сетью в Delphi 3 30.10.2009 23:56
Фильтр пакетов Stolen Общие вопросы Delphi 0 07.02.2009 09:38