python Socket编程
目录
一、什么是socket
二、客户端代码
三、服务端代码
一、什么是socket
在 Python 中使用客户端/服务端 Socket 可以用于在网络上建立通信连接,实现数据的传输和交换。客户端通过 Socket 连接向服务端发送请求,服务端接收并处理这些请求,然后返回响应给客户端。客户端/服务端 Socket 在网络编程中被广泛应用,适用面相当广泛。
二、客户端代码
2.1 首先创建了一个 Socket 对象,并通过 connect 方法连接到指定的主机和端口(这里是本地主机 localhost 和端口 8888)。
2.2 然后进入一个循环,不断接收用户输入的消息并通过 Socket 发送给服务端,同时接收来自服务端的响应消息并打印出来。
2.3 当用户输入 “exit” 后,退出循环并关闭 Socket 连接。
import socket
soc = socket.socket()
soc.connect(("localhost",8888))
while True:
msg = input("请输入发送给服务端的消息:")
if "exit" == msg:
break
soc.send(msg.encode("UTF-8"))
data = soc.recv(1024).decode("UTF-8")
print(f"服务端发来的消息:{data}")
soc.close()
三、服务端代码
3.2 首先创建了一个 Socket 对象,并通过 bind 方法绑定到指定的主机和端口(同样是本地主机 localhost 和端口 8888)。
3.2 然后通过 listen 方法开始监听客户端的连接请求。在接受到客户端连接后,进入一个循环,不断接收客户端发送的消息并打印出来,同时等待用户输入并将其发送给客户端。
3.3 当用户输入 “exit” 后,退出循环并关闭客户端连接和 Socket。
import socket
soc = socket.socket()
soc.bind(("localhost",8888))
soc.listen(1)
# 等待客户端链接
conn,address = soc.accept()
print(f"接收到了客户端的连接:{address}")
while True:
data = conn.recv(1024).decode("UTF-8")
print(f"客户端发来的消息:{data}")
msg = input("请输入服务端发送的消息:")
if "exit" == msg:
break
conn.send(msg.encode("UTF-8"))
conn.close()
soc.close()
结果: