HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

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

  #11  
Старый 12.06.2010, 19:21
#Specan
Новичок
Регистрация: 16.02.2010
Сообщений: 14
Провел на форуме:
147116

Репутация: 1
По умолчанию

А где там?
Можно поконкретнее?
 

  #12  
Старый 12.06.2010, 22:13
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
Провел на форуме:
1271980

Репутация: 19
По умолчанию

http://msdn.microsoft.com/en-us/library/ms741416(VS.85).aspx
 

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

Репутация: 1
По умолчанию

Спасибо.
 

  #14  
Старый 15.09.2010, 18:48
Neo][acK
Новичок
Регистрация: 27.03.2009
Сообщений: 1
Провел на форуме:
3081

Репутация: 0
По умолчанию

А можно небольшой примерчик посылки get или post запроса через socks4 прокси, естественно юзая только winsock?
 

  #15  
Старый 28.10.2010, 00:33
Sc0rpi0n
Новичок
Регистрация: 23.02.2010
Сообщений: 3
Провел на форуме:
46117

Репутация: 76
Отправить сообщение для Sc0rpi0n с помощью ICQ
По умолчанию

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) - не помогло(((

мне надо организовать многопоточность клиента т.е. сеть в отдельный поток
 

  #16  
Старый 28.10.2010, 11:54
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Если поток у тебя не запускается, то возможно может ты 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 потому что тогда могут быть проблемки с освобождением ресурсов. По любому система сама потом всё почистит за тобой после заверения функции.

Больше сказать ничего не могу потому что по коду тут ничего не скажешь т.к. его мало.
 

  #17  
Старый 28.10.2010, 12:22
Sc0rpi0n
Новичок
Регистрация: 23.02.2010
Сообщений: 3
Провел на форуме:
46117

Репутация: 76
Отправить сообщение для Sc0rpi0n с помощью ICQ
По умолчанию

спс. за ответ. клиент конектиться норм.

сетевые процедуры ( процедура подключ. к серверу, процедура потока) хранятся в отдельном моудуле моего консольного приложения.

странно то, что эти процедуры невозможно отладить(((

когда я запусил программу, я мельком увидел что поток всё тки создался, но он оч. быстро завершился, не смотря на то что там сразу был такой код

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, у тя случайно не звалялся простой пример многопотчности клиент?
 

  #18  
Старый 28.10.2010, 12:37
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

WSAStartup делал?

recv что возвращает? И что дает WSAGetlastError после recv. Какие советы юзаешь Winsock 1 или 2 ?
 

  #19  
Старый 28.10.2010, 13:58
Sc0rpi0n
Новичок
Регистрация: 23.02.2010
Сообщений: 3
Провел на форуме:
46117

Репутация: 76
Отправить сообщение для Sc0rpi0n с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
slesh said:
WSAStartup делал?
recv что возвращает? И что дает WSAGetlastError после recv. Какие советы юзаешь Winsock 1 или 2 ?
WSAStartup делал конечно. Версия 1.

WSAGetLastError ничего не возвращет.(((
 

  #20  
Старый 28.10.2010, 14:38
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

всмысле ничего не возвращает? такого не бывает. или она ноль у тебя возвращает?
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ