@ProCxx

Страница 2203 из 2477
Max
16.07.2018
10:27:00
это 2 клиентских сокета один до сервера другой в локальной сети до нужного мне порта

Spoonson
16.07.2018
10:29:18
strlen на бинарных (?) данных смелое решение. Обрнуть бы код в три ` для начала.

Max
16.07.2018
10:32:16
там обычный html можно сказать пробрасывается, так что строго говоря должны хотя бы строки приходить на запросы, но ничего не приходит, я же правильно понимаю что это должно работать

Google
Max
16.07.2018
10:45:08
Если сокеты блокирующие, то сначала надо бы send(), потом recv().
А не наоборот? просто тут устанавливается соединение с сервером, затем клиентская часть слушает(recv), а затем send отправляет на локальный сокет (тот который через fork), там он тоже получает сообщение и затем уже send на сервер

server-client(recv)->clientToLocalPort(send)->localPortClient(recv)->messageToServer(send)

Stolyarchuk
16.07.2018
10:48:09
снатить непроще? линукс же

Max
16.07.2018
10:48:53
embedd-linux)

Stolyarchuk
16.07.2018
10:49:29
ой нет тогда.. ждите гуру - они на обеде задерживабтся)

Max
16.07.2018
10:50:39
ну есть реализация уже одна, называется dropbear который пробросит порт через ssh туннель, но 240кб как бы хочется сократить до приемлимых 20-30кб

Ilia
16.07.2018
10:53:12
Igor
16.07.2018
10:53:40
Потому что она как правило уже сделана, когда начинают так о килобайтах печься, но вдруг забыли Ну или пожало с 240 до 230 всего

Max
16.07.2018
10:58:03
Google
Ilia
16.07.2018
10:59:04
у dropbear есть клиент dbclient называется, он уже сжат по максимуму и выходит 234кб где-то
Максим, ты с таким кодом такой таск не осилишь. Можешь взять код этого bear и почикать ненужное.

Kitsu
16.07.2018
10:59:38
чот тут поживее будет

https://ideone.com/tkwUfT Это UB-шечка или норм? Код понятное дело упрощен

Aleksandr
16.07.2018
11:00:55
UB как по мне

Igor
16.07.2018
11:01:08
УБшечка, ты же константу меняешь по сути, которую компилятор мог уже куда-то подставить

Kitsu
16.07.2018
11:03:50
thx

Юра Незнанов
16.07.2018
12:00:13
народ, а обилие ключевого слова register ничем не грозит?? в плане их же мало регистров-то, а ограничений на количество слов register в коде нет... я могу хоть сто штук переменных сделать регистровыми

Юра Незнанов
16.07.2018
12:01:32
и можно ли как-нибудь отменить его действие? в плане, если мне нужно какие-то действия локальные быстро очень провести, а потом эта переменная уже особо не нужна, как сделать так чтобы для дальнейшего использования в программе эта переменная не занимала просто так регистр

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

Igor
16.07.2018
12:02:36
код в студию, компилятор в студию

Юра Незнанов
16.07.2018
12:03:16
можно пожалуйста пример кода?
ну это тестовый пример

Alexander
16.07.2018
12:03:32
ну это тестовый пример
компилятор, флаги оптимизации какие?

Юра Незнанов
16.07.2018
12:03:42
int main() { register int a=0; unsigned long d = GetTickCount(); for(register int i=0;i<2000000000;i++) { a++; } DWORD ff = GetTickCount(); cout<<ff-d<<endl; return 0; }

qt creator, винда, ничего вручную не менял

Google
Kitsu
16.07.2018
12:03:58
а, ну понятно

Alexander
16.07.2018
12:04:05
какие флаги компиляции???

Kitsu
16.07.2018
12:04:26
qt creator, винда, ничего вручную не менял
поставь release сборку и убедишься, что разницы нет

Юра Незнанов
16.07.2018
12:05:10
какие флаги компиляции???
которые в .pro файле?? я говорю, вручную не трогал ничего

Stanislav
16.07.2018
12:05:17
и если включить C++17 то должен варнинговать на register :)

Alexander
16.07.2018
12:06:02
которые в .pro файле?? я говорю, вручную не трогал ничего
хм... сейчас бы нам угадать, что там у тебя в pro файле и что там по умолчанию

Юра Незнанов
16.07.2018
12:06:13
да нихрена там нет

Alexander
16.07.2018
12:06:19
тогда просто включай релиз

Юра Незнанов
16.07.2018
12:06:26
TEMPLATE = app CONFIG += console c++98 CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp HEADERS += \ json.h

Alexander
16.07.2018
12:07:01
да, QMAKE_CXXFLAGS
не, с этим товарищем так не работает. Ты компиляешь в Debug или Release?

Kitsu
16.07.2018
12:07:05
c++98 :(

Anatoly
16.07.2018
12:07:21
я не очень понял, почему это здесь?

Alexander
16.07.2018
12:07:39
дебаг
а теперь собери релиз

Юра Незнанов
16.07.2018
12:08:58
Alexander
16.07.2018
12:09:17
и что это значит? ?

Юра Незнанов
16.07.2018
12:09:34
что все на этапе компиляции выполнилось?

Kitsu
16.07.2018
12:10:12
что все на этапе компиляции выполнилось?
лучше в supaprocxx и заранее отвечу, что да

Google
Побитый
16.07.2018
12:12:09
что все на этапе компиляции выполнилось?
У тебя цикл не содержит побочных эффектов и компилятор его в релизной версии ВЫКИНУЛ НАХРЕН

Юра Незнанов
16.07.2018
12:14:38
У тебя цикл не содержит побочных эффектов и компилятор его в релизной версии ВЫКИНУЛ НАХРЕН
да блин понятно что это тестовая хрень... ну вот например в цикле for может быть нужно оставлять слово регистр? for(register int i=0;i<N;i++)

Ignat
16.07.2018
12:15:10
nope

Побитый
16.07.2018
12:15:36
да блин понятно что это тестовая хрень... ну вот например в цикле for может быть нужно оставлять слово регистр? for(register int i=0;i<N;i++)
компилятор игнорирует это ключевое слово (в новых стандартах возможно как то выдает warning). Так что что пиши что нет один хрен

Юра Незнанов
16.07.2018
12:18:33
а нафига его тогда добавляли?.. или это сишные остатки?

Побитый
16.07.2018
12:18:43
да блин понятно что это тестовая хрень... ну вот например в цикле for может быть нужно оставлять слово регистр? for(register int i=0;i<N;i++)
хотя возможно если у тебя древний компилятор используется, то и не игнорит... В embedded каком-нибудь тоже возможно не игнорит, но это уже мои догадки

а нафига его тогда добавляли?.. или это сишные остатки?
обратная совместимость, как и #include и т.д.

Alexander
16.07.2018
12:19:59
а нафига его тогда добавляли?.. или это сишные остатки?
думали, что программист сможет помочь компилятору. Но выкинули слово туда же, куда и спецификации исключений

Anatoly
16.07.2018
12:20:45
а нафига его тогда добавляли?.. или это сишные остатки?
думали, что программисту виднее, где разместить данные

Юра Незнанов
16.07.2018
12:21:23
а сейчас вообще реально оптимизировать лучше чем компилятор это сделает?..

Mikhail Voronov
16.07.2018
12:21:57
suprapro

Юра Незнанов
16.07.2018
12:22:30
suprapro
Все, я уже все. Всем спасибо! ?

Alexander
16.07.2018
12:23:15
кстати, никто не натыкался на инфу, сколько времени от компиляции компилятор проводит за оптимизациями?

Alexander
16.07.2018
12:36:13
спасибо, такое я и сам умею ?

Mikhail Voronov
16.07.2018
12:36:38
кстати, никто не натыкался на инфу, сколько времени от компиляции компилятор проводит за оптимизациями?
я максимум что видел - это число проходов компилятором при оптимизации

Google
Ilia
16.07.2018
12:48:19
int main() { register int a=0; unsigned long d = GetTickCount(); for(register int i=0;i<2000000000;i++) { a++; } DWORD ff = GetTickCount(); cout<<ff-d<<endl; return 0; }
Юра, очень классно оптимизировать программц, которая не делает ничего... Любой компилятор тебе сделает очень хорошую программу, которая очень быстро не сделает ничего.

Ростик
16.07.2018
12:49:15
Теперь ваша прога будет ничего не делать на 20% быстрее

Юра Незнанов
16.07.2018
12:50:19
Да гонишь!
господи, ну издеваться то зачем... просто у меня сейчас нет прикладной задачи где это можно было бы использовать реально, а это был чисто тестовый примерчик

Побитый
16.07.2018
12:52:10
ТАк и в старых компиляторах оно было сугубо рекомендательным.
Ну я парень молодой :) поэтому не знаю, может в древних компиляторах они реально оптимизировали на основе register а не просто игнорировали это слово

Ilia
16.07.2018
12:53:06
Нет, никогда не оптимизировалось, всегда было рекомендательным. Ещё даже в чистом С.

Тут мы не будем обсуждать ДоДиез, иди в @pro_net или как его там...

Никита
16.07.2018
13:01:54
Очень много. Где-то процентов 80-90
Не так много, it depends. https://stackoverflow.com/questions/11338109/gcc-understand-where-compilation-time-is-taken

Max
16.07.2018
13:14:10
Теперь ваша прога будет ничего не делать на 20% быстрее
Почему-то вспомнилось. https://habr.com/post/342002/

Серж
16.07.2018
13:15:12
правильно: volitiale int a = 0

Крис
16.07.2018
13:15:13
Как минимум

Страница 2203 из 2477