ConnectionError: Did not receive Dummy Byte!
See original GitHub issueI’m trying to write a simplest demo like
from adbutils import adb
import scrcpy
def on_frame(frame):
if frame is not None:
print(type(frame))
device = adb.device()
client = scrcpy.Client(
max_width=540, device=device)
client.start()
client.add_listener(scrcpy.EVENT_FRAME, on_frame)
while client.alive:
client.start()
for the hardware setting, i only have a phone with USB cable connected. all run in Ubuntu 16.04, python 3.9.5,
here is the conda list
# packages in environment at /home/alex/anaconda3/envs/tf2:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main defaults
_openmp_mutex 4.5 1_gnu defaults
_tflow_select 2.1.0 gpu defaults
absl-py 0.13.0 py39h06a4308_0 defaults
adbutils 0.11.0 pypi_0 pypi
aiohttp 3.7.4 py39h27cfd23_1 defaults
apkutils2 1.0.0 pypi_0 pypi
argon2-cffi 20.1.0 py39h27cfd23_1 defaults
astor 0.8.1 py39h06a4308_0 defaults
astunparse 1.6.3 py_0 defaults
async-timeout 3.0.1 py39h06a4308_0 defaults
async_generator 1.10 pyhd3eb1b0_0 defaults
attrs 21.2.0 pyhd3eb1b0_0 defaults
av 8.0.3 py39h7b1e1d3_0 conda-forge
backcall 0.2.0 pyhd3eb1b0_0 defaults
blas 1.0 mkl defaults
bleach 4.0.0 pyhd3eb1b0_0 defaults
blinker 1.4 py39h06a4308_0 defaults
brotlipy 0.7.0 py39h27cfd23_1003 defaults
bzip2 1.0.8 h7f98852_4 conda-forge
c-ares 1.17.1 h27cfd23_0 defaults
ca-certificates 2021.5.30 ha878542_0 conda-forge
cachetools 4.2.2 pyhd3eb1b0_0 defaults
certifi 2021.5.30 py39h06a4308_0 defaults
cffi 1.14.6 py39h400218f_0 defaults
chardet 3.0.4 py39h06a4308_1003 defaults
cigam 0.0.3 pypi_0 pypi
click 8.0.1 pyhd3eb1b0_0 defaults
coverage 5.5 py39h27cfd23_2 defaults
cryptography 3.4.7 py39hd23ed53_0 defaults
cudatoolkit 10.1.243 h6bb024c_0 defaults
cudnn 7.6.5 cuda10.1_0 defaults
cupti 10.1.168 0 defaults
cython 0.29.24 py39h295c915_0 defaults
dbus 1.13.18 hb2f20db_0 defaults
decorator 5.0.9 pyhd3eb1b0_0 defaults
defusedxml 0.7.1 pyhd3eb1b0_0 defaults
deprecation 2.1.0 pypi_0 pypi
entrypoints 0.3 py39h06a4308_0 defaults
expat 2.4.1 h2531618_2 defaults
ffmpeg 4.3.2 hca11adc_0 conda-forge
fontconfig 2.13.1 h6c09931_0 defaults
freetype 2.10.4 h5ab3b9f_0 defaults
gast 0.4.0 py_0 defaults
glib 2.69.0 h5202010_0 defaults
gmp 6.2.1 h58526e2_0 conda-forge
gnutls 3.6.13 h85f3911_1 conda-forge
google-auth 1.33.0 pyhd3eb1b0_0 defaults
google-auth-oauthlib 0.4.4 pyhd3eb1b0_0 defaults
google-pasta 0.2.0 py_0 defaults
grpcio 1.36.1 py39h2157cd5_1 defaults
gst-plugins-base 1.14.0 h8213a91_2 defaults
gstreamer 1.14.0 h28cd5cc_2 defaults
h5py 2.10.0 py39hec9cf62_0 defaults
hdf5 1.10.6 hb1b8bf9_0 defaults
icu 58.2 he6710b0_3 defaults
idna 2.10 pyhd3eb1b0_0 defaults
importlib-metadata 3.10.0 py39h06a4308_0 defaults
importlib_metadata 3.10.0 hd3eb1b0_0 defaults
intel-openmp 2021.3.0 h06a4308_3350 defaults
ipykernel 5.3.4 py39hb070fc8_0 defaults
ipython 7.26.0 py39hb070fc8_0 defaults
ipython_genutils 0.2.0 pyhd3eb1b0_1 defaults
ipywidgets 7.6.3 pyhd3eb1b0_1 defaults
jedi 0.18.0 py39h06a4308_1 defaults
jinja2 3.0.1 pyhd3eb1b0_0 defaults
jpeg 9b h024ee3a_2 defaults
jsonschema 3.2.0 py_2 defaults
jupyter 1.0.0 py39h06a4308_7 defaults
jupyter_client 6.1.12 pyhd3eb1b0_0 defaults
jupyter_console 6.4.0 pyhd3eb1b0_0 defaults
jupyter_core 4.7.1 py39h06a4308_0 defaults
jupyterlab_pygments 0.1.2 py_0 defaults
jupyterlab_widgets 1.0.0 pyhd3eb1b0_1 defaults
keras-preprocessing 1.1.2 pyhd3eb1b0_0 defaults
lame 3.100 h7f98852_1001 conda-forge
lcms2 2.12 h3be6417_0 defaults
ld_impl_linux-64 2.35.1 h7274673_9 defaults
libffi 3.3 he6710b0_2 defaults
libgcc-ng 9.3.0 h5101ec6_17 defaults
libgfortran-ng 7.5.0 ha8ba4b0_17 defaults
libgfortran4 7.5.0 ha8ba4b0_17 defaults
libgomp 9.3.0 h5101ec6_17 defaults
libpng 1.6.37 hbc83047_0 defaults
libprotobuf 3.17.2 h4ff587b_1 defaults
libsodium 1.0.18 h7b6447c_0 defaults
libstdcxx-ng 9.3.0 hd4cf53a_17 defaults
libtiff 4.1.0 h2733197_1 defaults
libuuid 1.0.3 h1bed415_2 defaults
libxcb 1.14 h7b6447c_0 defaults
libxml2 2.9.12 h03d6c58_0 defaults
lz4-c 1.9.3 h9c3ff4c_1 conda-forge
markdown 3.3.4 py39h06a4308_0 defaults
markupsafe 2.0.1 py39h27cfd23_0 defaults
matplotlib-inline 0.1.2 pyhd3eb1b0_2 defaults
mistune 0.8.4 py39h27cfd23_1000 defaults
mkl 2021.3.0 h06a4308_520 defaults
mkl-service 2.4.0 py39h7f8727e_0 defaults
mkl_fft 1.3.0 py39h42c9631_2 defaults
mkl_random 1.2.2 py39h51133e4_0 defaults
multidict 5.1.0 py39h27cfd23_2 defaults
nbclient 0.5.3 pyhd3eb1b0_0 defaults
nbconvert 6.1.0 py39h06a4308_0 defaults
nbformat 5.1.3 pyhd3eb1b0_0 defaults
ncurses 6.2 he6710b0_1 defaults
nest-asyncio 1.5.1 pyhd3eb1b0_0 defaults
nettle 3.6 he412f7d_0 conda-forge
notebook 6.4.2 py39h06a4308_0 defaults
numpy 1.19.5 pypi_0 pypi
numpy-base 1.20.3 py39h74d4b33_0 defaults
oauthlib 3.1.1 pyhd3eb1b0_0 defaults
olefile 0.46 pyh9f0ad1d_1 conda-forge
opencv-python 4.5.3.56 pypi_0 pypi
openh264 2.1.1 h780b84a_0 conda-forge
openjpeg 2.4.0 hf7af979_0 conda-forge
openssl 1.1.1k h27cfd23_0 defaults
opt_einsum 3.3.0 pyhd3eb1b0_1 defaults
packaging 21.0 pyhd3eb1b0_0 defaults
pandocfilters 1.4.3 py39h06a4308_1 defaults
parso 0.8.2 pyhd3eb1b0_0 defaults
pcre 8.45 h295c915_0 defaults
pexpect 4.8.0 pyhd3eb1b0_3 defaults
pickleshare 0.7.5 pyhd3eb1b0_1003 defaults
pillow 8.3.1 py39h2c7a002_0 defaults
pip 21.1.3 py39h06a4308_0 defaults
prometheus_client 0.11.0 pyhd3eb1b0_0 defaults
prompt-toolkit 3.0.17 pyh06a4308_0 defaults
prompt_toolkit 3.0.17 hd3eb1b0_0 defaults
protobuf 3.17.2 py39h295c915_0 defaults
ptyprocess 0.7.0 pyhd3eb1b0_2 defaults
py 1.10.0 pypi_0 pypi
pyasn1 0.4.8 py_0 defaults
pyasn1-modules 0.2.8 py_0 defaults
pycparser 2.20 py_2 defaults
pyelftools 0.27 pypi_0 pypi
pygments 2.9.0 pyhd3eb1b0_0 defaults
pyjwt 2.1.0 py39h06a4308_0 defaults
pyopenssl 20.0.1 pyhd3eb1b0_1 defaults
pyparsing 2.4.7 pyhd3eb1b0_0 defaults
pyqt 5.9.2 py39h2531618_6 defaults
pyrsistent 0.18.0 py39h7f8727e_0 defaults
pyside6 6.1.3 pypi_0 pypi
pysocks 1.7.1 py39h06a4308_0 defaults
python 3.9.5 h12debd9_4 defaults
python-dateutil 2.8.2 pyhd3eb1b0_0 defaults
python-flatbuffers 1.12 pyhd3eb1b0_0 defaults
python_abi 3.9 2_cp39 conda-forge
pyyaml 5.4.1 py39h27cfd23_1 defaults
pyzmq 22.2.1 py39h295c915_1 defaults
qt 5.9.7 h5867ecd_1 defaults
qtconsole 5.1.0 pyhd3eb1b0_0 defaults
readline 8.1 h27cfd23_0 defaults
requests 2.25.1 pyhd3eb1b0_0 defaults
requests-oauthlib 1.3.0 py_0 defaults
retry 0.9.2 pypi_0 pypi
rsa 4.7.2 pyhd3eb1b0_1 defaults
scipy 1.6.2 py39had2a1c9_1 defaults
scrcpy-client 0.3.4 pypi_0 pypi
send2trash 1.5.0 pyhd3eb1b0_1 defaults
setuptools 52.0.0 py39h06a4308_0 defaults
shiboken6 6.1.3 pypi_0 pypi
sip 4.19.13 py39h2531618_0 defaults
six 1.16.0 pyhd3eb1b0_0 defaults
sqlite 3.36.0 hc218d9a_0 defaults
tensorboard 2.4.0 pyhc547734_0 defaults
tensorboard-plugin-wit 1.6.0 py_0 defaults
tensorflow 2.4.1 gpu_py39h8236f22_0 defaults
tensorflow-base 2.4.1 gpu_py39h29c2da4_0 defaults
tensorflow-estimator 2.5.0 pyh7b7c402_0 defaults
tensorflow-gpu 2.4.1 h30adc30_0 defaults
termcolor 1.1.0 py39h06a4308_1 defaults
terminado 0.9.4 py39h06a4308_0 defaults
testpath 0.5.0 pyhd3eb1b0_0 defaults
tk 8.6.10 hbc83047_0 defaults
tornado 6.1 py39h27cfd23_0 defaults
traitlets 5.0.5 pyhd3eb1b0_0 defaults
typing-extensions 3.10.0.0 hd3eb1b0_0 defaults
typing_extensions 3.10.0.0 pyh06a4308_0 defaults
tzdata 2021a h52ac0ba_0 defaults
urllib3 1.26.6 pyhd3eb1b0_1 defaults
wcwidth 0.2.5 py_0 defaults
webencodings 0.5.1 py39h06a4308_1 defaults
werkzeug 1.0.1 pyhd3eb1b0_0 defaults
wheel 0.36.2 pyhd3eb1b0_0 defaults
whichcraft 0.6.1 pypi_0 pypi
widgetsnbextension 3.5.1 py39h06a4308_0 defaults
wrapt 1.12.1 py39he8ac12f_1 defaults
x264 1!161.3030 h7f98852_1 conda-forge
xmltodict 0.12.0 pypi_0 pypi
xz 5.2.5 h7b6447c_0 defaults
yaml 0.2.5 h7b6447c_0 defaults
yarl 1.6.3 py39h27cfd23_0 defaults
zeromq 4.3.4 h2531618_0 defaults
zipp 3.5.0 pyhd3eb1b0_0 defaults
zlib 1.2.11 h7b6447c_3 defaults
zstd 1.4.9 ha95c52a_0 conda-forge
Issue Analytics
- State:
- Created 2 years ago
- Comments:5 (4 by maintainers)
Top Results From Across the Web
Error when using scrcpy-server directly · Issue #613 - GitHub
Then I run a python script just like #129 , I can get the dummy byte (0), but I can't get the next...
Read more >An existing connection was forcibly closed by the remote host
The 0#0 simply means that nothing was sent because the socket was already closed. The connection is still open, and a packet of...
Read more >Creating Responses - Requests-Mock - Read the Docs
A python object that will be converted to a JSON string. text: A unicode string. This is typically what you will want to...
Read more >Client Reference — aiohttp 3.8.3 documentation
One example is not processing cookies at all when working in proxy mode. If no cookie processing is needed, a aiohttp.DummyCookieJar instance can...
Read more >Web Requests with Python - Pluralsight
HTTP requests are composed of methods like GET, POST, PUT, ... This dummy post request will return the attached data as response body:....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
https://github.com/leng-yue/py-scrcpy-client/blob/a8222520c09f968ad0449eba280a96e8bd95e29c/scrcpy_ui/main.py#L61-L64 https://github.com/leng-yue/py-scrcpy-client/blob/a8222520c09f968ad0449eba280a96e8bd95e29c/scrcpy_ui/main.py#L169-L171
No, this works as expected. It is used to detect whether the QT window is closed. While QT is not closed, the program should reconnect after users change the device.
I think the problem is that you started the server twice.
Can you try:
And if you want to start the client in an independent thread, you can use
client.start(threaded=True)
, and the main loop won’t be blocked.