Нужно перенаправить все входящие запросы с браузеров на другой сервер и вернуть им результаты.
Такой себе myProxy.
В результате, исходящие данные:
- Код: Выделить всё
uses blcksock; //from synapse
type
TClientThread = class(TThread)
public
Socket: TTCPBlockSocket;
end;
var
Socket: TTCPBlockSocket;
T: TClientThread;
ThreadList: TList;
Запускаю программу, жду подключений и запихиваю их в TList
- Код: Выделить всё
Socket.CreateSocket;
Socket.Bind(Socket.LocalName,'57777');
repeat
if Socket.CanRead(100) then
begin
T:=TClientThread.Create(Socket.Accept);
ThreadList.Add(pointer(T));
T.Start;
end;
until Terminated;
В какой то момент отдаю им ответы:
- Код: Выделить всё
var
cln : TClientThread;
for i:=0 to ThreadList.Count-1 do
begin
cln := TClientThread(ListenerClient.ThreadList.Items[i]).Socket.SendString('ok');
end;
И вот на элементах с индексом >0 получаю исключение SIGSEGV
Не могу понять, это что-то с сокетом, или я не правильно придумал схему.