TCP — протокол передачи, ориентированный на поток -; его заботит только получение байтов в правильном порядке от одного хоста к другому, его не волнует содержимое этих байтов или любое сообщение, которое они могут сформировать. Как только соединение установлено, любой конец соединения может отправлять байты другому.
Чтобы придать смысл сообщению, вам необходимо согласовать протокол поверх TCP. Именно этот протокол определяет, какие сообщения следует отправлять и как интерпретировать полученные сообщения; это включает в себя определение завершения сообщения. Например, в HTTP, если присутствует заголовок «Content -Length», получатель может использовать его, чтобы выяснить, получил ли он все данные; если это не так, используются другие методы (см. RFC для подробностей ), вплоть до ожидания закрытия сервером соединения (, которое каким-то образом использует TCP для определить длину сообщения, хотя и довольно затратным способом ).
Если вы хотите отправлять отдельные сообщения, используя транспортный протокол, ориентированный на сообщения -, вы можете использовать UDP или SCTP вместо TCP.
Мне удалось решить мою проблему. Вот как я это сделал.
pamac
), установите следующие пакеты, как подробно описано в моем исходном сообщении :opensc-pkcs11.so
. Шахта находилась в/usr/lib64/opensc-pkcs11.so
pgrep -l pcscd
. Как предложил telcoM, вы должны увидеть вывод. Если вы ничего не получили, запустите две команды в его/ее комментарии, чтобы запустить службу pcscd
сейчас и запустить ее при загрузке. pgrep -l pcscd
теперь должен выводить число, за которым следуетpcscd
pcsc_scan
. Последняя строка в выводе должна иметь видWaiting for the first reader...
Card removed
и Card inserted
каждый раз, когда вы вставляете или извлекаете карту, а также все подробности, касающиеся карты. *Не знаю, обязательно ли это, но у меня так устроено.
Используемые источники::
Процесс pcscd
запущен? (Выводит ли что-нибудь pgrep -l pcscd
? )Он должен работать как служба/демон, но вам может потребоваться сначала включить его.
sudo systemctl start pcscd.service # start it now
sudo systemctl enable pcscd.service # make it start automatically at boot in the future too
После этого команда pcsc_scan
должна обнаружить ваш кард-ридер и предоставить некоторую техническую информацию о вашей карте, когда она вставлена.
См. также эту цепочку сообщений на форуме Manjaro :https://forum.manjaro.org/t/solved-smartcard-reader-not-shown/39460
По сути, устройство чтения карт poster kubwit использовало пользовательский USB-идентификатор продукта/поставщика, который нужно было добавить в /etc/libccid_Info.plist
до того, как драйвер ccid
обнаружит карту. Ваш кард-ридер должен поддерживаться так же, как и -, если только идентификатор поставщика не изменился недавно (, так как этот кард-ридер изначально относится к линейке продуктов SCR, но Identiv купила SCR некоторое время назад ).