С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 5

Нет соединения по сокету через connect из Ws2_32

23.04.2014, 22:52. Показов 1369. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сеть с доменом, HTTP прокся, касперский 10 - без возможности настройки исключений, но можно выключить нажав правой мышки на иконке в трее. Админ то ли не хочет на встречу идти то ли нет полномочий, что бы добавить программу в исключения, в общем говорит что вам платят деньги и это ваши проблемы что, дословно "ваша программа не умеет работать с антивирусами".
Программа с проксями работать умеет и нормально работает на других компах в разных организациях, но на этом компе до FTP и HTTP протоколов дело не доходит - функция connect из Ws2_32 возвращает SOCKET_ERROR, но при этом WSAGetLastError() не выдаёт никаких ошибок (возвращает 0). IE странички открывает нормально через проксю, но на FTP сервер не заходит и не спрашивает логин и пароль (видимо прокся бреет IE при обращении к 21 порту). Функция URLDownloadToFile из urlmon.dll файлы качает но через неё ведь не удобно - ни прогресса, ни FTP.
Снифер не видит подключения на проксю из моей программы. В общем такое ощущение что что-то сразу бреет при попытке сконектиться по сокету с проксёй. Думаю на антивирус, но может что-то ещё? На компе рядом вроде бы нет антивируса, но всё то же самое. Могут какие-то доменные правила что-то блокировать? Или может антивирус даже в выключенном состоянии контролирует сетевые подключения? Опять же почему работает URLDownloadToFile? - Внутри функции наверняка те же сокеты используются. В общем не пойму в чём дело.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2014, 22:52
Ответы с готовыми решениями:

Нет интернет-соединения через кабель
Собственно, какое дело: прихожу домой и обнаруживаю, что на компе интернета нет (пишет сетевой кабель не подключен), с утра был, со...

Нет соединения с и-нетом через браузеры
Помогите пожалуйста нет соединения с и-нетом через браузеры хотя скайп работает хорошои и в хроме всегда открывается его и-нетовский...

Сокеты через Ws2_32.dll
Есть ли у кого работающий пример гет запроса на какой-нибудь сайт ? В нэте всё в DEV-C++ не работает,а знаний что-либо исправить не...

6
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
24.04.2014, 09:47
Антивирь или бредмауэр.
Цитата Сообщение от losthuman Посмотреть сообщение
"ваша программа не умеет работать с антивирусами"
- обратитесь к руководству для выписывания соответствующих "премиальных" админу. Админ просто не хочет выполнять свою работу.
0
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 5
24.04.2014, 16:40  [ТС]
Антивирь или бредмауэр это да, причём, насколько я понял, не на локальной машине, а на шлюзовом сервере, т.к. выяснилось что комп стоящий рядом - без антивируса и тот же самый эффект...
Что интересно, TeamViewer соединяется, TotalCommander тоже подключился к FTP через вариант настройки прокси с USER... снифер показал как он получал данные через "GET ftp://user: pass@host:21/ HTTP/1.0". Интересно каким он идёт путём - в плане подключения? Почему по моим сокетам нет события FD_CONNECT, а тоталовские сокеты конектятся?
0
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
24.04.2014, 16:43
Может нужный порт закрыт?
0
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 5
24.04.2014, 17:32  [ТС]
Всё что идёт в интернет - идёт через проксю, я так же пытаюсь соединиться непосредственно к проксе ip:3333, этот-же ip и порт в тотале задаю - конектится зараза. Значит где-то что-то у меня не так, только вот где?
Сокеты неблокирующие, к конкретным портам через bind их не привязываю - соответственно, как понимаю, они сами привязываются к рандомным портам при установке соединения.
принцип у меня такой (foxpro):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// создаю сокет:
hSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)
IF hSocket == INVALID_SOCKET 
 THIS.WS_Error = WSAGetLastError()
// ...
 
// делаю его неблокирующим:
rt1 = 1
IF ioctlsocket(hSocket, FIONBIO, @rt1) == SOCKET_ERROR
  THIS.WS_Error = WSAGetLastError()
//  ...
 
// создаю событие:
hEvent = WSACreateEvent()
 
// на всякий случай cбрасываю событие:
IF WSAResetEvent(hEvent) == 0
 THIS.WS_Error = WSAGetLastError()
// ...
 
// Выбираю ожидаемое событие по сокету:
IF WSAEventSelect(hSocket, hEvent, FD_CONNECT) == SOCKET_ERROR
 THIS.WS_Error = WSAGetLastError()
// ...
 
// Ну и собственно коннекчусь (структура адреса само собой правильная, иначе бы нигде не работало):
IF connect(hSocket, @sockaddr, len(sockaddr)) == SOCKET_ERROR
  THIS.WS_Error = WSAGetLastError()
и вот здесь выполняется условие, а WSAGetLastError() возвращает 0, продолжаю ждать событие и вылет по таймауту...

Кроме в фильтрации по портам мыслей пока нет. Тотал думаю тоже использует рандомные порты - сейчас несколько раз подключался, открывает - 56230...56260 порты.
0
 Аватар для Aneron
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
25.04.2014, 09:39
Сделай сокеты блокирующими и посмотри что тебе вернет connect.

Добавлено через 5 минут
В общем от события можно отвязаться вот таким способом.
http://http://www.kalinin.ru/programming/network/01_12_00.shtml

Я на вашем месте бы, проверил все на чистой машине без антивирусов и брендмауэров. Если там работал, значит косяк в них.
Просто если бы каждая софтина умела бы обходить антивирусы и брендмауэры, то от них толку бы не было...
0
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 5
25.04.2014, 16:39  [ТС]
Спасибо за ссылку, прояснились некоторые моменты в работе с коннектом.
В общем сидел пол дня - перепробовал массу разных вариантов с сокетами, таймаутами - никак.

Буду думать в направлении URLDownloadToFile, попробую запускать в отдельном потоке, что бы хоть как-то контролировать процесс. Поковыряю тоталкомандер отладчиком - может там какая-то специфика есть, через raw-сокеты может работает или ещё чего.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2014, 16:39
Помогаю со студенческими работами здесь

Подойдут ли вентиляторы от сокету 1150 к сокету 1151
Хочу собирать компьютер на сокете 1151 , но не вижу вентиляторов к такому процессору , подойдут ли вентиляторы к сокету 1150. И ещё вопрос...

Как боротся с вирусом a-connect(i-connect,z-connect)
Итак расскажу что за вирус... Этот вирус создает новое подключение VPN a-connect и через 1-2 минуты отключается интернет. Еще создает EXE...

Нет соединения с БД
Добрый день эксперты!Такая проблема-скинули мне сайт готовый,закинул его в денвер как обычно,пытаюсь запустить index.php (запускаю через...

Нет D-sub соединения
Добрый день/ Подключил свой старенький пк к монитору лджи на монике пишет нет дсаб соединения подождите переход в ждущий режим/ ...

Нет соединения
До этого делал то же самое, все норм было. щас написал уже самое простое, ничего не получается( что не так у меня?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru