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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 20:27   #1
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию DLL и сокеты

Здравствуйте, уважаемые!
Помогите решить проблему...

Есть приложение-1, оно поднимает сервер на TServerSocket и внедряет библиотеку в чужой процесс.
Есть Библиотека, она поднимает клиент и пытается слать инфу из чужого процесса Приложению-1.
Есть собсно само Приложение-2, исходник коего я не знаю, но внедряю в него свою библиотеку.

Сервер слушает обычно:
Код:
procedure TDLLInjectForm.SockClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('Sock: Client connected!');
end;
procedure TDLLInjectForm.SockClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('Client Disconnected!');
end;
procedure TDLLInjectForm.SockClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  Memo1.Lines.Add('Client Error');
end;
procedure TDLLInjectForm.SockClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('ClientRead');
  if Socket.ReceiveLength>0 then Memo1.Lines.Add(Socket.ReceiveText);
end;
procedure TDLLInjectForm.SockListen(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('Сервер слушает');
end;
Принимает коннекты от другого приложения. Принимает текст. Всё отлично...

Клиент в библиотеке:
Код:
{ TSockClass }
procedure TSockClass.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  ShowMessage('ClientConnect');
  Sock.Socket.SendText('sdgsdfhgdfhdjfgjfjghjghjgh');
end;
procedure TSockClass.ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin

end;
procedure TSockClass.ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin

end;
procedure TSockClass.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin

end;

begin
  SockClass:=TSockClass.Create;
  Sock:=TClientSocket.Create(nil);
  Sock.Address:='127.0.0.1';
  Sock.ClientType:=ctNonBlocking;
  Sock.Port:=5678;
  Sock.OnConnect:=SockClass.ClientConnect;
  Sock.OnDisconnect:=SockClass.ClientDisconnect;
  Sock.OnError:=SockClass.ClientError;
  Sock.OnRead:=SockClass.ClientRead;

  // кучакода
end.
Мессага не вылазит у приложения-2, приложение-1 не сообщает о подключении клиента.
Тот же самый код, но из приложения-3 (тестового), принимает подключения и текст...

Тип подключения и порт указаны верно. Код просто скопирован из другого приложения (оттуда, где он работал)

В чем может быть дело? в библиотеке не работают сокеты?
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 25.12.2010, 20:49   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А это уже не актуально http://programmersforum.ru/showthread.php?t=129956 ?
BOBAH13 вне форума Ответить с цитированием
Старый 26.12.2010, 08:22   #3
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

актуально, просто я не знаю к какому разделу это больше относится...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пытаюсь понять код user32.dll и gdi32.dll Beermonza Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 43 13.07.2010 15:09
С#, сокеты Namolem Общие вопросы .NET 0 06.05.2010 10:53
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
Сокеты Pavelok Работа с сетью в Delphi 3 16.09.2009 16:57
Сокеты в DLL vynt Работа с сетью в Delphi 7 01.07.2008 21:54