Народ, получаю ответы от сервера через reсv в бесконечном цикле, но прога виснет, как это оптимизировать можно?
Для recv() создай отдельный поток,для виндовс через CreateThread на Линукс с помощью функции pthread_create() или же пользуйся асинхронными сокетами.
Не, поток не вариант. Нужно сделать что то типо события, если на сокет пришло что то, выполнить recv, как то так
народу, вам не надоело обсуждать каждый месяц одно и тоже? 1) если это HTTP запросы. то не надо збывать про Connection: Close и Content-Length 2) если хз какойто другой протокол, то после коннекта переводи сокет в неблокируемый режим и гоняй в цикле вместе с Application.ProcessMessages и небольшой паузой. илиже если неблокируемые не нравятся, то через select проверяй готовность сокета
решил проблему так: Code: const WM_MYSOCKMESS= WM_USER+1; private procedure NetMSG (var M:TMessage); message WM_MYSOCKMESS; ... procedure TForm1.NetMSG(var M: TMessage); begin case m.LParam of FD_READ: begin recv(_clientSocket, sRecvBuff_5, 512,0); Memo1.Lines.Add(sRecvBuff_5); end; FD_CLOSE: CloseSocket(M.WParam); end; end; WSAAsyncSelect(_clientSocket, handle, WM_MYSOCKMESS, FD_READ); Думаю как теперь работу через проксю сделать. Может делал кто то подобное, подскажите какие запросы слать, викопедия пока не очень помогла)
прокся - понятие растяжимое. Существует много видом проксей. Но почти для каждого вида есть своя RFC. Вот и ищи RFC по протоколу прокси, причем для Socks5, Socks4, HTTP, HTTPS - точно есть