失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 树莓派 Python 网络编程 (Socket入门)

树莓派 Python 网络编程 (Socket入门)

时间:2021-03-24 01:25:33

相关推荐

树莓派  Python 网络编程 (Socket入门)

树莓派 Python 网络编程 (Socket入门)

什么是 Socket?

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

Python 提供了两个级别访问的网络服务。:

低级别的网络服务支持基本的Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。高级别的网络服务模块SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

服务端

1、socket():创建一个socket 例子:s =socket.socket()

2、bind():绑定IP地址和端口,他接受是一个元组数据 例子 s.bind(("127.0.0.1",8088))

3、listen():定义最多能挂起的数目。例子: s.listen(2) 允许两个客户端等待发送信息 (挂起)

4、accept():创建主机和客户的连接 conn.addr=s.accept()

以下是服务器端代码,server.py

# - *- coding: utf- 8 - *-import socket# 导入 socket 模块s = socket.socket() # 创建 socket 对象host = socket.gethostname() # 获取本地主机名port = 12345# 设置端口s.bind((host, port)) # 绑定端口s.listen(5) # 等待客户端连接while True:c,addr = s.accept()# 建立客户端连接。print('连接地址:', addr)c.send(" This is the server. I will send you a message now. ")c.close()# 关闭连接

注意:以上代码在python2中运行是没有问题的,如果在python3中会遇到:TypeError: a bytes-like object is required, not 'str'

参考:/questions/33054527/typeerror-a-bytes-like-object-is-required-not-str-when-writing-to-a-file-in

/questions/33003498/typeerror-a-bytes-like-object-is-required-not-str

方法1:改一行代码c.send(bytes('Thisistheserver.Iwillsendyouamessagenow.','utf-8'))

客户端

1、socket() :创建socket s=socket.socket()

2、connect():用自己的对象去连接服务端 s.connect(("127.0.0.1",8088))

以下是客户端代码,client.py

# - *- coding: utf- 8 - *-import socket# 导入 socket 模块s = socket.socket() # 创建 socket 对象host = socket.gethostname() # 获取本地主机名port = 12345# 设置端口号s.connect((host, port))print(s.recv(1024) )s.close()

具体操作步骤:

现在我们打开两个终端(或者两个python IDLE),第一个终端执行 server.py 文件:

第二个终端执行 client.py 文件:

这时我们再打开第一个终端(服务器端),就会看到有以下信息输出:连接地址: ('192.168.0.118', 62461)

这时我们打开客户端,就会看到有以下信息输出: b'hello'

好了,这次分享到这里了,欢迎指正,感谢观看。

如果觉得《树莓派 Python 网络编程 (Socket入门)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。