UDP-сокет в состоянии UNCONN при использовании iproute2 ss

На самом деле, функциональность CapsLock привязана к значению keysym нажатой клавиши. Чтобы увидеть отображение кодов клавиш на keysyms, выполните xmodmap -pke. Отображение CapsLock (ключевой код 66) должно быть таким (| grep 'keycode 66'):

keycode  66 = Caps_Lock NoSymbol Caps_Lock

Вы можете немного поиграть с xev. Подробнее читайте в ArchWiki: Xmodmap#Introduction.

Как я могу отсоединить клавиши (коды клавиш), чтобы отключить их функцию как модификаторов?

Вам нужно изменить отображение CapsLock.

  • Чтобы отключить CapsLock, нужно снять его отображение:

    xmodmap -e 'keycode 66 = NoSymbol NoSymbol NoSymbol NoSymbol'
    
  • Чтобы включить CapsLock, нужно снова отобразить его на значения по умолчанию:

    xmodmap -e 'keycode 66 = Caps_Lock NoSymbol Caps_Lock'
    

Что на самом деле делает команда clear?

Она очищает отображение модификатора, а не отображение кодов клавиш. Подробнее на ArchWiki: Xmodmap#Modifier_keys

1
24.04.2018, 04:17
1 ответ

TL;DR :вы можете использовать сокеты UDP в режиме подключения или оставаться без подключения, это выбор реализации, зависящий, среди прочих факторов, от простоты или масштабируемости. Это не изменит содержимое пакетов в сети и не отследит любой сделанный выбор.

netcatиспользуетbind(2)для выбранного порта, использует только один разrecvfrom(2)с опцией MSG_PEEK, чтобы даже не потреблять данные, извлекает источник, затем используетconnect(2)для этого источника, изменяя состояние сокета на ESTAB, и теперь можно продолжить простыми вызовамиread(2)и write(2).

Другие приложения (, например :socat UDP-RECVFROM:7777,fork -вместо socat UDP-LISTEN:7777 -, и, очевидно, openvpn )просто никогда неconnect(2)к источнику и, таким образом, остаются в состоянии UNCONN. Они будут использовать толькоrecvfrom(2)и будут передавать данные, используяsendto(2).

Эта разница в использовании частично объясняется вrecv(2)и send(2):

.

The send() call may be used only when the socket is in a connected state (so that the intended recipient is known). The only difference between send() and write(2) is the presence of flags. With a zero flags argument, send() is equivalent to write(2).

2
28.01.2020, 00:36

Теги

Похожие вопросы