2019-05-06 socket相关

2019-06-12  本文已影响0人  Dorrrris

我一直以为是要两台机器,一台写server端,一台写client端,但是总说拒绝连接(之类的),防火墙也有关闭,ping也可以成功。不知道为什么。实验室环境,用的校园网。

也懒得排查了,其实一台电脑就可以测试。Jupyter写一个server端,spyder写一个client端。

参考https://blog.csdn.net/luckytanggu/article/details/53491892

有些改动的地方,可能因为我是python3.0。
运行源代码的时候,可以连接,但是会报错,TypeError: a bytes-like object is required, not 'str'。
参考
https://blog.csdn.net/u014770372/article/details/76285740
https://blog.csdn.net/jacke121/article/details/78150165
https://blog.csdn.net/wx1458451310/article/details/78593994
str通过encode()方法可以编码为指定的bytes.
如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法.

有send()的地方都加上encode(encoding='utf_8', errors='strict')

#server
 conn.send('Connection closed!'.encode(encoding='utf_8', errors='strict'))
#client
print (s.recv(1024).decode(encoding='utf_8', errors='strict'))
上一篇下一篇

猜你喜欢

热点阅读