树莓派 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'
https://stackoverflow.com/questions/33003498/typeerror-a-bytes-like-object-is-required-not-str
方法1:改一行代码 c.send(bytes(' This is the server. I will send you a message now. ', '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'
好了,这次分享到这里了,欢迎指正,感谢观看。
文章来源: guo-pu.blog.csdn.net,作者:一颗小树x,版权归原作者所有,如需转载,请联系作者。
原文链接:guo-pu.blog.csdn.net/article/details/83446394
- 点赞
- 收藏
- 关注作者
评论(0)