Бред

Ответить в тред Ответить в тред
Аноним # OP 19/12/20 Суб 14:30:51 2357427751
image.png 10Кб, 474x175
474x175
C++ WINAPI THREAD

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

Попытался воспользоваться готовым кодом с сайта Microsoft. Он никаких ошибок не выдал, но я все-же решил повыводить через каждый вызов функции что-нибудь в консоль. И как выяснилось, после вызова функции accept в консоль ничего не выводится. Почему?


https://docs.microsoft.com/en-us/windows/win32/winsock/complete-server-code/
Аноним 19/12/20 Суб 14:32:30 2357428482
Аноним 19/12/20 Суб 14:34:43 2357429613
>>235742775 (OP)
Так может потому что к тебе ни кто не подключается? Accept сидит в цикле пока не появится подключение.
Вынеси accept в другой поток, раз уж тебе так надо что бы код дальше исполнялся.
Аноним # OP 19/12/20 Суб 14:35:15 2357429854
>>235742848
Я вообще понятия не имею как должно все работать. Для начала решил проверить работает ли вообще.. А надо? Я думал можно поднять локальный прокси сервер и делать ещё какие-то действия, а подключаться когда захочу..
Аноним # OP 19/12/20 Суб 14:35:49 2357430225
>>235742961
А. После accept цикл идет до тех пор пока кто-то не подключится? ВОН ОНО ЧО. Спасибо анончик <3
Аноним # OP 19/12/20 Суб 14:36:24 2357430446
>>235742961
А код можно же будет переделать под WSASend и WSARecv, да?
Аноним 19/12/20 Суб 14:37:08 2357430737
>>235742985
Чтобы сервер работал как надо, тебе нужно accept закинуть в отдельный поток к примеру, дабы обрабатывать входящие подключения к серверу. Если ты прям настолько тупой, что вообще никак, обрати внимание на какие-нибудь готовые библиотеки типа того же ENet, которые позволяют тебе тупо в цикле обновлять всё и получать какие-либо эвенты типа подключения, приёма данных и т.п.
Аноним 19/12/20 Суб 14:39:14 2357431908
>>235742775 (OP)
как написать то же самое но чтобы это работало на любой операционке?
Аноним 19/12/20 Суб 14:40:24 2357432509
>>235743190
ENet https://github.com/lsalzman/enet
Либо любая другая кроссплатформенная библиотека для работы с сетью. Либо же сам ебешься и пишешь платформозависимый код, оборачивая его слоем абстракций
Аноним 19/12/20 Суб 14:41:49 23574331310
>>235743250
я имею в виду это как-то реализуется вроде?
if (system == Linux) {
// use linux code
}
else if (system == Windows) {
...
}
else {
...
}
Аноним # OP 19/12/20 Суб 14:42:13 23574332911
Спасибо анончики :3
Аноним 19/12/20 Суб 14:43:16 23574338112
>>235742775 (OP)
Делай на неблокирующих сокетах, это чуть сложнее, но в целом выходит круче.
>>235743044
>WSASend и WSARecv
Это те же BSD-шные send и recv.
Аноним 19/12/20 Суб 14:43:36 23574340813
>>235743190
WinSock сделан на базе стандартного BSD-стека, есличо.
>>235743250
Ты ещё на пистоне писать предложи.
Аноним 19/12/20 Суб 14:44:18 23574345414
>>235743313
>if (system == Linux)
Ебать дебил. А ещё советы раздаёт.
19/12/20 Суб 14:44:55 23574348615
>>235743313
#if WIN32
//Сосать хуй по виндовсовски
#elif LINUX
//Сосать хуй по пингвиньи
#endif

А потом определяешь WIN32 или LINUX в препроцессоре и нужный код подхватывается во время компила
Аноним # OP 19/12/20 Суб 14:46:20 23574357416
>>235743381
Мне нужно именно WSASend и WSARecv. Если бы они были простой обёрткой над send и recv, то при перехвате send или recv и отмене отправки данных они бы не отправлялись. Однако они отправляются. А вот когда WSASend или WSARecv тогда нет.
Аноним 19/12/20 Суб 14:46:37 23574359417
>>235743454
я не писал сюда советы, не злись
Аноним 19/12/20 Суб 14:46:53 23574360718
>>235743594
Ну да, дебил, что поделать, такой уж есть.
Аноним 19/12/20 Суб 14:51:09 23574384319
>>235743574
>Если бы они были простой обёрткой над send и recv
А разве не?
>и отмене отправки данных
Вангую, ты обрабатываешь не все состоятния TCP.
Аноним 19/12/20 Суб 14:52:05 23574388420
Буст же есть, нахуй это говно?
Аноним 19/12/20 Суб 14:52:41 23574392821
>>235743884
Ещё PHP или жабу предложи.
Аноним 19/12/20 Суб 14:53:55 23574400022
>>235742775 (OP)
Настоятельно рекомендую перейти на Boost.ASIO
19/12/20 Суб 14:54:24 23574402423
>>235744000
А лучше Питон и няшиться в попу, да? :3
Аноним 19/12/20 Суб 14:54:33 23574402924
Аноним 19/12/20 Суб 14:55:07 23574405025
>>235743928
Ну и нахуй ты это тут высрал?
С Бустом производительность практически не страдает, зато добавляется удобство ООП и кросс-платформенность.
Аноним 19/12/20 Суб 14:55:33 23574407026
Аноним 19/12/20 Суб 14:56:13 23574410327
>>235744050
будто реклама батплага
Аноним 19/12/20 Суб 14:56:17 23574410828
>>235744024
Нет, лучше изобретать свой велосипед, прибитый гвоздями к WinAPI.
19/12/20 Суб 14:56:26 23574412429
>>235744050
Если человек хочет вкатиться в сети и изучить как оно всё работает изнутри, то лучше без бустов всяких это делать
Аноним # OP 19/12/20 Суб 14:56:30 23574413030
>>235743843
>Вангую, ты обрабатываешь не все состоятния TCP
Всё что отправляется при помощи вызова функции send я отменял и WSASend отправка всё равно работала.
19/12/20 Суб 14:57:22 23574417331
>>235744108
Изобретаешь свой велосипед - получаешь понимание, как оно там вообще изнутри функционирует. Не обязательно прибиваться к WinAPI, можно написать кроссплатформенную либу, чисто в целях обучения.
Аноним 19/12/20 Суб 14:57:29 23574418132
>>235744124
Чем лучше?
Там будут те же самые send() и recv(), только платформонезависимые и с возможностью легкого перехода в асинхрон.
Аноним 19/12/20 Суб 14:58:11 23574422233
>>235742775 (OP)
>Он никаких ошибок не выдал
откуда ты ошибки берешь?
Аноним # OP 19/12/20 Суб 14:59:23 23574424534
>>235744222
В каком смысле? Я имею ввиду ошибок в момент создания прокси-сервера.
Аноним 19/12/20 Суб 14:59:25 23574424735
>>235744173
>Изобретаешь свой велосипед - получаешь понимание, как оно там вообще изнутри функционирует
Ты хуйню какую-то пишешь.
Чем принципиально API ASIO отличается от API Winsock?
Там точно те же сокеты и буферы.
Аноним 19/12/20 Суб 14:59:43 23574427236
>>235744050
>удобство ООП
На сложность разработки сетевой стейт-машины ООП влияет примерно никак.
>кросс-платформенность
BSD-сокеты уже кроссплатформенны и в винде они есть. Не знаю, почему ОП к WSA привязывается.
Аноним 19/12/20 Суб 15:00:26 23574431837
>>235742775 (OP)
если ты уже просто слушаешь порт и устанавливаешь коннект на реальный серв то ты реально хочешь продолжать ебаться с плюсами? наебаш на шарпах - 2 таски одна читает из коннекта игры и пишет в коннект сервера, вторая наоборот
19/12/20 Суб 15:00:31 23574432238
>>235744181
Тем, что прострелит себе ногу пару раз. Узнает, что такое асинхронность, начнёт копать в сторону работы потоков и прочих вещей, выстрелит себе в ногу ещё пару раз, поймёт как не надо делать. Тут главное получить сами знания того, как это всё можно соорудить. Получаешь такой опыт и идёшь юзать то, что было сделано до тебя с пониманием, как и что функционирует и не задаёшь потом вопросов "А почему это после accept ничего не выполняется?". В этом был мой посыл.
19/12/20 Суб 15:00:50 23574434739
Аноним 19/12/20 Суб 15:01:02 23574435740
>>235744181
Они и без буста присутствуют.
Аноним 19/12/20 Суб 15:01:43 23574440241
>>235742775 (OP)
Потому тчо accept блокирует поток и ждёт, пока в сокет кто-то напишет.
Аноним 19/12/20 Суб 15:03:46 23574453142
>>235744245
ты запускаешь сервер, цикл отрабатывает и завершается. ошибок нет. ты ловишь ошибки на подключение к серверу, а ты к нему подключаешься хоть? нет. вынеси все в отдельный поток, чтобы оно в фоне работало, и при каждом обращении к серву выдавало тебе все ошибки.
Аноним 19/12/20 Суб 15:04:00 23574455443
>>235744322
Нахуй тогда компилятор нужен?
Можно сразу в hex-редакторе бинарщину хуярить.
Выстрелить себе в ногу пару раз, зато поймёшь, как на самом деле работает этот ваш x86.
19/12/20 Суб 15:05:25 23574462744
>>235744554
Ну да, ну да, лучше быть тупой макакой, которая не может нихуя даже сделать без гугла и сраных библиотек, чем нормальным спецом
Аноним 19/12/20 Суб 15:05:56 23574465545
>>235744554
Ты реально думаешь, что без знания ассемблера есть смысл программировать? Иди лэндинги верстай или двор подметай.
Аноним 19/12/20 Суб 15:07:18 23574473746
>>235744655
иди нахуй. Лезут всякие в кодинг со своими ассемблерами а сами даже хотя бы один процессор не спроектировали и не пустили на производство
Аноним 19/12/20 Суб 15:10:00 23574491647
>>235744737
Может, ты ещё таблицу умножения не знаешь?
Аноним 19/12/20 Суб 15:10:12 23574492448
>>235744655
>Ты реально думаешь, что без знания ассемблера есть смысл программировать?
Ассемблер это слишком высокоуровнево, надо сразу прям сырые байты писать, без трансляции.

>>235744627
>Ну да, ну да, лучше быть тупой макакой, которая не может нихуя даже сделать без гугла и сраных библиотек, чем нормальным спецом
Нет, лучше изобретать велосипед на каждый чих, игнорируя опыт других людей.
"Макаки" с библиотеками создают рабочие продукты, "пуристы" ничего сложнее бесполезного пет-проджекта сотворить неспособны. И не факт, что даже эта хуйня будет производительнее решений на фреймворках.
Аноним 19/12/20 Суб 15:11:45 23574502249
>>235744924
> надо сразу прям сырые байты писать, без трансляции.
Для x86 это сложновато. Для ARM или последователей PDP - легко. Для MIPS - не пробовал.
19/12/20 Суб 15:12:16 23574506050
>>235744924
Процитирую себя же
>Получаешь такой опыт и идёшь юзать то, что было сделано до тебя с пониманием, как и что функционирует и не задаёшь потом вопросов "А почему это после accept ничего не выполняется?". В этом был мой посыл.
Никто не говорит сидеть на своих пет проектах.
А вообще - да, пиздуй верстать лендинги
Аноним 19/12/20 Суб 15:12:50 23574508651
когда ещё хуй стоял и срален насиловал ленена в жопу вообще на бумаге на дереве вырезали нули и единицы вот тогда люди умели программировать а щас формошлёпы ебаные хрр тьфу
19/12/20 Суб 15:15:30 23574523852
gif4.gif 481Кб, 300x200
300x200
Хуйня какая-то, сажи.
Аноним 19/12/20 Суб 15:16:03 23574526553
>>235745060
>А вообще - да, пиздуй верстать лендинги
Спасибо, но мне и в энтерпрайзе неплохо.
Аноним # OP 19/12/20 Суб 15:16:44 23574530754
>>235744272
Потому что в игре используется WSA! И кросс-платформенность мне не нужна.
Аноним 19/12/20 Суб 15:20:42 23574555955
>>235744103
Чел, ты в курсе, что ASIO стал частью C++ Networking TS и в C++23 войдёт в стандарт самого языка?
Аноним 19/12/20 Суб 15:23:38 23574574756
>>235744173
>Изобретаешь свой велосипед - получаешь понимание, как оно там вообще изнутри функционирует
И получаешь понимание, что суровые бородатые программисты с 20-30летним опытом, разрабатывающие либы, не зря едят свой хлеб, и эти полгода, что ты потратил на свой велосипед, прошли напрасно.
Аноним 19/12/20 Суб 15:27:32 23574599957
>>235745559
А BSD-стек уже 25 лет как кроссплатформенный стандарт.
19/12/20 Суб 15:27:35 23574600358
>>235745747
Полгода на кроссплатформенную работу с сокетами, что прототипируется от силы дня за 3? Это ж насколько нужно быть дауном
Аноним 19/12/20 Суб 15:29:40 23574614359
>>235746003
Если там стейт-машина на сотни состояний, то очень может быть.
Аноним 19/12/20 Суб 15:29:50 23574615760
>>235746003
Я про либы и фреймворки в целом, клоун.
19/12/20 Суб 15:43:33 23574706861
image.jpg 87Кб, 1200x900
1200x900
Аноним 19/12/20 Суб 15:56:32 23574792962
>>235743073
не слушай этого ебаната. нормальные пацаны могут в поллинг, а не как этот кусок клининического дебила
Аноним 19/12/20 Суб 15:57:14 23574797363
>>235747929
Ему весь тред об этом твердят, но он игнорит.
Аноним # OP 19/12/20 Суб 15:59:04 23574809164
>>235747973
Я еще со второго сообщения в этом посту понял что accept ждет подключения. Или ты не об этом?
Аноним 19/12/20 Суб 15:59:06 23574809565
>>235743073
Нахуя, на винде нет нормальных средств асинхронного ввода-вывода (тот же блядский poll/epoll, про select вообще молчу)?
Аноним 19/12/20 Суб 16:00:06 23574815566
>>235748095
это не асинхронный ввод/вывод, мудила.
Аноним 19/12/20 Суб 16:04:32 23574847367
>>235748091
Если неблокирующий режим, то не ждёт.
Аноним 19/12/20 Суб 16:05:26 23574854168
Аноним # OP 19/12/20 Суб 16:07:05 23574866569
>>235748473
А как сделать неблокирующий?
Аноним 19/12/20 Суб 16:32:35 23575034670
Аноним 19/12/20 Суб 16:39:27 23575078571
Какую длину буфера использует Java Minecraft? Как переделать код который в ОП-посте под WSASend и WSARecv?
Аноним # OP 19/12/20 Суб 16:39:46 23575080172
Аноним # OP 19/12/20 Суб 16:51:23 23575154173
БАМП
19/12/20 Суб 17:02:13 23575217474
gif4.gif 481Кб, 300x200
300x200
Хуйня какая-то, сажи.
Аноним # OP 19/12/20 Суб 17:05:06 23575234675
Бамп
Аноним # OP 19/12/20 Суб 17:08:32 23575259776
Бамп
19/12/20 Суб 17:08:46 23575261877
gif4.gif 481Кб, 300x200
300x200
Хуйня какая-то, сажи.
Аноним # OP 19/12/20 Суб 17:08:53 23575262578
Аноним # OP 19/12/20 Суб 17:11:49 23575282579
19/12/20 Суб 17:15:19 23575304680
gif4.gif 481Кб, 300x200
300x200
Аноним # OP 19/12/20 Суб 17:16:08 23575310681
Аноним 19/12/20 Суб 17:19:32 23575334482
>>235748665
Что-то там через SetSockOpt на винде и ioctl в линухе. Параметры не помню.
Аноним 19/12/20 Суб 17:20:02 23575337583
>>235744000
Ебать говноед. Лучше libevent или libev заврапать. Будет и быстрей и куда легче дрочева с асио, ебаный стыд.
Аноним 19/12/20 Суб 17:21:12 23575345484
Аноним # OP 19/12/20 Суб 17:22:53 23575357185
Братья, если игрой УЖЕ используется библиотека ws2_32.dll, надо ли вызывать WSAStartup из моей библиотеки которая загружается в ЭТОТ ЖЕ процесс?
Аноним 19/12/20 Суб 17:25:30 23575375886
1354948987654.png 878Кб, 1280x720
1280x720
>>235742775 (OP)
Этот айти евнух будет через год зарабатывать 100кк/сек стажером. Гоня подобную же хуету своим менторам. А вы так и будете сосать хуи со своими советами.
Аноним 19/12/20 Суб 17:28:17 23575395987
>>235753454
Бля, как же жеппа пичот от таких рахипектов, ебаныйврот. Тысячу раз обсираются, жрут говну, но всё равно за буст топят.
Аноним # OP 19/12/20 Суб 17:30:11 23575409288
Аноним 19/12/20 Суб 17:35:16 23575445789
55801d31cc0ff90[...].jpg 12Кб, 293x300
293x300
>>235754092
Дибил тебе же уже сказали напиши свой прокси, заодно разберешься как tcp/ip стек работает. Нет же лучше выковыривать из носа какой то бред на голом win api под которым ни один вменяемый человек уже 20 лет не пишет и спрашивать советов. Иди нахуй, в пизду катись. Заебал
Аноним # OP 19/12/20 Суб 17:36:40 23575455290
>>235754457
>напиши свой прокси
Я по твоему что-то другое пишу?
Аноним # OP 19/12/20 Суб 17:38:25 23575467491
Аноним # OP 19/12/20 Суб 17:39:07 23575471692
>>235754457
Ещё добавлю то, что все программы которые работают под Windows работают на WinAPI.
19/12/20 Суб 17:40:49 23575483093
>>235754716
Тебя все уже услышали, кто хотел.
Аноним 19/12/20 Суб 17:41:42 23575488594
>>235753959
>всё равно за буст топят
Дубинушка, я топлю за другой вариант, который ОПом игнорируется, что не мешает ему использоваться в десятке известных опенсорсных продуктов. Но ЭТА ЖИ СЛОЖНА, НАДО НА ДВЕ СТРОЧКИ БОЛЬШЕ НАПИСАТЬ И МАССИВ ОБЪЯВИТЬ.
>>235753571
Надо.
19/12/20 Суб 17:42:45 23575494495
>>235754552
По моему ты хуйней занимаешься и внимаеблядством, а не код пишешь
Аноним # OP 19/12/20 Суб 17:43:20 23575498496
>>235754944
По моему ты пришел сюда без знаний чтобы просто посраться
Аноним # OP 19/12/20 Суб 17:44:12 23575504097
>>235754885
Но в документации сказано что функция WSAStartup инициирует использование Winsock DLL процессом. Но ведь процесс игры уже использует эту библиотеку..
Аноним # OP 19/12/20 Суб 17:47:16 23575522698
БАМП
Аноним # OP 19/12/20 Суб 17:50:12 23575542499
БАМП
Аноним 19/12/20 Суб 17:50:21 235755434100
>>235754944
Двачую, есть такие подозрения.
>>235754984
Знания ты игноришь.
>>235755040
DLL подключает линковщик, а через WSAStartup ты инициализируешь WinSock и указываешь версию.
Аноним # OP 19/12/20 Суб 17:54:39 235755723101
>>235755434
Передача данных игрой уже используется, значит игра уже вызывала WSAStartup. Зачем его вызывать повторно? Или WSAStartup это как сигнал о том что здесь он тоже будет использоваться?
Аноним # OP 19/12/20 Суб 17:57:40 235755931102
Бамп!
19/12/20 Суб 17:57:49 235755946103
>>235755723
Как же у тебя насрано в голове. И ты просишь за бесплатно анонов нырнуть в это говно
Аноним 19/12/20 Суб 17:58:08 235755963104
>>235755723
>Зачем его вызывать повторно?
Повторно из того же процесса можно не вызывать. Советую ещё излагать мысли внятно и не надеяться на наличие телепатов в треде, тогда ты быстрее получишь ответ.
Аноним # OP 19/12/20 Суб 18:01:53 235756229105
>>235755963
Понятно. Хорошо, буду конкретнее.
Аноним 19/12/20 Суб 18:08:39 235756675106
>>235742775 (OP)
Анон, тебе нужно прокси или WinAPI? Если прокси, напиши на C#, запусти локалхост, попробуй через постмена посылать запросы и не еби мозги, если ты кайфуешь от дроча на WinAPI -- тебе не сюда точно
Аноним # OP 19/12/20 Суб 18:10:31 235756814107
image.png 25Кб, 640x362
640x362
>>235756675
> тебе нужно прокси или WinAPI? Если прокси, напиши на C#
Прокси на C# работает на том же WinAPI. Просто ты скорее всего имел ввиду использовать какие-нибудь готовые библиотеки.
Аноним # OP 19/12/20 Суб 18:10:49 235756843108
>>235756814
Пик случайно прикрепил
Аноним # OP 19/12/20 Суб 18:11:25 235756894109
>>235756814
>использовать какие-нибудь готовые библиотеки
Которые так же будут работать на этом же WinAPI т.к это Windows
Аноним 19/12/20 Суб 18:14:12 235757082110
>>235756814
На C# алгоритм действий простой.
1. Импортируешь парочку using
2. Создаёшь слушающий сокет
3. Отправляешь инфу пойманную из сокета в инторнет
4. ?????
5. ПРОФИТ
Зачем остальные 100+ постов -- ЯННП
Аноним 19/12/20 Суб 18:17:28 235757303111
>>235743022
Не после accept, а внутри. Вызов блокирует вызывающий поток до появления подключения.
Аноним # OP 19/12/20 Суб 18:24:19 235757748112
>>235757303
Мне уже это объяснили но, внутри это как?
Аноним # OP 19/12/20 Суб 18:31:07 235758187113
Аноним 19/12/20 Суб 18:51:25 235759490114
Настройки X
Ответить в тред X
15000
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов