ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

12.06.2010, 19:21
|
|
Новичок
Регистрация: 16.02.2010
Сообщений: 14
Провел на форуме: 147116
Репутация:
1
|
|
А где там?
Можно поконкретнее?
|
|
|

12.06.2010, 22:13
|
|
Познающий
Регистрация: 31.05.2009
Сообщений: 68
Провел на форуме: 1271980
Репутация:
19
|
|
http://msdn.microsoft.com/en-us/library/ms741416(VS.85).aspx
|
|
|

12.06.2010, 22:16
|
|
Новичок
Регистрация: 16.02.2010
Сообщений: 14
Провел на форуме: 147116
Репутация:
1
|
|
Спасибо.
|
|
|

15.09.2010, 18:48
|
|
Новичок
Регистрация: 27.03.2009
Сообщений: 1
Провел на форуме: 3081
Репутация:
0
|
|
А можно небольшой примерчик посылки get или post запроса через socks4 прокси, естественно юзая только winsock?
|
|
|

28.10.2010, 00:33
|
|
Новичок
Регистрация: 23.02.2010
Сообщений: 3
Провел на форуме: 46117
Репутация:
76
|
|
slesh, подскажи пожалуйсто.
у меня прога может работать в двух режимах
1) сервер сервер
имеется общая процедура для потока. там происходит обмен данными и т.п. он прекрассно работает, когда программа - сервер. Но когда программа - клиент, чтобы не переписовать код заново, я юзаю туже процедуру. Проблема в том что при подключении к серверу, прога вырубаеся. т.е. поток не создаётся.((((
вот кусочек
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if[/COLOR][COLOR="#0000BB"]connect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Socket[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]Addr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]Sizeof[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Addr[/COLOR][COLOR="#007700"])) <>[/COLOR][COLOR="#0000BB"]INVALID_SOCKET then
begin
ThID[/COLOR][COLOR="#007700"]:=[/COLOR][COLOR="#0000BB"]CreateThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]nil[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"], @[/COLOR][COLOR="#0000BB"]ClientThread[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]Pointer[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Socket[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ThID[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]end[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"]procedure ClientThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]ClientSocket[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]TSocket[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#0000BB"]stdcall[/COLOR][COLOR="#007700"];
var
[/COLOR][COLOR="#0000BB"]Buffer[/COLOR][COLOR="#007700"]: array[[/COLOR][COLOR="#0000BB"]0..1024[/COLOR][COLOR="#007700"]][/COLOR][COLOR="#0000BB"]of Char[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]begin
[/COLOR][COLOR="#007700"]while[/COLOR][COLOR="#0000BB"]True[/COLOR][COLOR="#007700"]do
[/COLOR][COLOR="#0000BB"]begin
recv[/COLOR][COLOR="#007700"]...
[/COLOR][COLOR="#0000BB"]send[/COLOR][COLOR="#007700"]...
[/COLOR][COLOR="#0000BB"]ExitThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]end[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
пробывал туда и сюда ставить sleep(100) - не помогло(((
мне надо организовать многопоточность клиента т.е. сеть в отдельный поток
|
|
|

28.10.2010, 11:54
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Если поток у тебя не запускается, то возможно может ты connect не так проверял.
как глосит msdn - If no error occurs, this function returns zero. If an error occurs, it returns SOCKET_ERROR
Так что делай проверку
Код:
Code:
if connect(***) = 0 then
begin
CreateThread(****);
end;
Также функция потока имеет вид:
function Name(***:****):dword; stdcall;
А также Не советую завершать функцию потока через ExitThread потому что тогда могут быть проблемки с освобождением ресурсов. По любому система сама потом всё почистит за тобой после заверения функции.
Больше сказать ничего не могу потому что по коду тут ничего не скажешь т.к. его мало.
|
|
|

28.10.2010, 12:22
|
|
Новичок
Регистрация: 23.02.2010
Сообщений: 3
Провел на форуме: 46117
Репутация:
76
|
|
спс. за ответ. клиент конектиться норм.
сетевые процедуры ( процедура подключ. к серверу, процедура потока) хранятся в отдельном моудуле моего консольного приложения.
странно то, что эти процедуры невозможно отладить(((
когда я запусил программу, я мельком увидел что поток всё тки создался, но он оч. быстро завершился, не смотря на то что там сразу был такой код
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"]procedure ClientThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]ClientSocket[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]TSocket[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#0000BB"]stdcall[/COLOR][COLOR="#007700"];
var
[/COLOR][COLOR="#0000BB"]Buffer[/COLOR][COLOR="#007700"]: array[[/COLOR][COLOR="#0000BB"]0..4096[/COLOR][COLOR="#007700"]][/COLOR][COLOR="#0000BB"]of Char[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]Output[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]string[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]begin
[/COLOR][COLOR="#007700"]while[/COLOR][COLOR="#0000BB"]True[/COLOR][COLOR="#007700"]do
[/COLOR][COLOR="#0000BB"]begin
recv[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]ClientSocket[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]Buffer[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]SizeOf[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Buffer[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);
.....
[/COLOR][COLOR="#0000BB"]closesocket[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]ClientSocket[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]ExitThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]end[/COLOR][COLOR="#007700"];
[/COLOR][/COLOR]
т.е. пропусчен recv.
кстати я в поток ставил sleep(5000) и ноль реации! ещё раз привожу код
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"]procedure ClientConnect[/COLOR][COLOR="#007700"]();
const
[/COLOR][COLOR="#0000BB"]Host[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'127.0.0.1'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]Port[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]83[/COLOR][COLOR="#007700"];
var
[/COLOR][COLOR="#0000BB"]DestSocket[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]TSocket[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]DestAddr[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]TSockAddr[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]ThID[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]THandle[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]begin
DestSocket[/COLOR][COLOR="#007700"]:=[/COLOR][COLOR="#0000BB"]socket[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]AF_INET[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]SOCK_STREAM[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]IPPROTO_TCP[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]DestAddr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]sin_family[/COLOR][COLOR="#007700"]:=[/COLOR][COLOR="#0000BB"]AF_INET[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]DestAddr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]sin_addr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]S_addr[/COLOR][COLOR="#007700"]:=[/COLOR][COLOR="#0000BB"]inet_addr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Host[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]DestAddr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]sin_port[/COLOR][COLOR="#007700"]:=[/COLOR][COLOR="#0000BB"]htons[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]Port[/COLOR][COLOR="#007700"]);
if[/COLOR][COLOR="#0000BB"]connect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]DestSocket[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]DestAddr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]Sizeof[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]DestAddr[/COLOR][COLOR="#007700"])) =[/COLOR][COLOR="#0000BB"]0 then
begin
ThID[/COLOR][COLOR="#007700"]:=[/COLOR][COLOR="#0000BB"]CreateThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]nil[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"], @[/COLOR][COLOR="#0000BB"]ClientThread[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]Pointer[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]DestSocket[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ThID[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]end[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]end[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
ПС slesh, у тя случайно не звалялся простой пример многопотчности клиент?
|
|
|

28.10.2010, 12:37
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
WSAStartup делал?
recv что возвращает? И что дает WSAGetlastError после recv. Какие советы юзаешь Winsock 1 или 2 ?
|
|
|

28.10.2010, 13:58
|
|
Новичок
Регистрация: 23.02.2010
Сообщений: 3
Провел на форуме: 46117
Репутация:
76
|
|
Сообщение от slesh
slesh said:
WSAStartup делал?
recv что возвращает? И что дает WSAGetlastError после recv. Какие советы юзаешь Winsock 1 или 2 ?
WSAStartup делал конечно. Версия 1.
WSAGetLastError ничего не возвращет.(((
|
|
|

28.10.2010, 14:38
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
всмысле ничего не возвращает? такого не бывает. или она ноль у тебя возвращает?
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|