Мастер участка
Группа: Модератор
Сообщений: 545
|
делаю проксу (не профессионально, а чисто по-любительски)
причём перенаправляет она не в инет, а на другую проксу (ну так надо — напрямик нельзя)
всё вроде в норме, но есть фигня в динамическом создании клиент. сокета:
CODE | void __fastcall TProxyService::ServerSocket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
Logging("ServerSocket1ClientConnect "+IntToStr(ServerSocket1->Socket->ActiveConnections));
TClientSocket *t=NULL;
try
{
Logging("0");
t=new TClientSocket(ClientSocket1->Owner);
Logging("1");
t->Address="10.3.2.80";
Logging("2");
t->Port=8080;
Logging("3");
t->Socket->Data=Socket;
Logging("4");
t->OnError=ClientSocket1Error;
Logging("5");
t->OnRead=ClientSocket1Read;
Logging("6");
t->OnDisconnect=ClientSocket1Disconnect;
Logging("7");
t->OnConnect=ClientSocket1Connect;
Logging("8");
Socket->Data=t;
Logging("9");
t->Open();
Logging("10");
Sleep(100);
Logging("11");
}
catch(Exception &exception)
{
Logging("Exception: "+exception.Message);
if(t)
delete t;
Socket->Close();
}
}
| Logging — это функция вывода на Memo, потом будет заменена на вывод в файл (там ничего сложного нет).
так вот — 4 соединения делаются отменно, потом — одно из них уходит в Disconnect (отключается нормально), а потом при коннекте новое не создаётся.
в Логе так:QUOTE |
ClientSocket1Disconnect
ServerSocket1ClientDisconnect
ServerSocket1ClientConnect 4
0
Exception: EAccessViolation
ServerSocket1ClientDisconnect
|
причём на дисконнект не реагирует и всё равно есть поступившие данные
Вопросов 2:
- почему вылазит эксепшн?
- как при поступлении коннекта отказать ему?
прилагаю проект...
|