赞
踩
提示:这里可以添加本文要记录的大概内容:
Socket主要负责进程之间的网络数据传输,好比数据的搬运工
本文介绍了简易的客户端和服务端的开发
提示:以下是本篇文章正文内容,下面案例可供参考
等待其它进程的连接、可接受发来的消息、可以回复消息
import socket
socket_server = socket.socket()
socket_server.bind(("localhost",8888))
#localhost 表示主机IP,8888表示地址
socket_server.listen(1) # listen内表示允许接收的连接数量
# result = socket_server.accept()
# conn = result[0] # 客户端和服务端的连接对象
# address = result[1] # 客户端的地址信息
conn,address = socket_server.accept() # 连接对象和地址信息
# accept()是阻塞的方法,如果无连接就不向下执行
print(f"接收到了客户端的连接,连接信息是,{address}")
data: str = conn.recv(1024).decode("UTF-8")
# recv接受的参数是缓冲区大小,一般为1024
# recv方法的返回值是一个字节数组也就是bytes对象,可以通过decode方法进行解码,转变为str
print(f"客户端发来的消息是{data}")
msg = input("请输入回复消息")
conn.send(msg.encode("UTF-8")) # encode编码为字节数组对象
conn.close()
socket_server.close()
import socket socket_server = socket.socket() socket_server.bind(("localhost",8888)) socket_server.listen(1) conn,address = socket_server.accept() print(f"接收到了客户端的连接,连接信息是,{address}") while True: data: str = conn.recv(1024).decode("UTF-8") print(f"客户端发来的消息是{data}") msg = input("请输入回复消息") if msg == 'exit': break conn.send(msg.encode("UTF-8")) conn.close() socket_server.close()
主动连接服务端、可以发送消息、可以接收回复
import socket
socket_client = socket.socket()
socket_client.connect(("localhost",8888))
msg = input("请输入要发送的消息:")
socket_client.send(msg.encode("UTF-8"))
recv_data = socket_client.recv(1024) # 缓冲区大小,一般为1024
print(f"接受的信息为:{recv_data.decode('UTF-8')}") # 解码
socket_client.close()
import socket
socket_client = socket.socket()
socket_client.connect(("localhost",8888))
while True:
msg = input("请输入要发送的消息:")
if msg == 'exit':
break
socket_client.send(msg.encode("UTF-8"))
recv_data = socket_client.recv(1024)
print(f"接受的信息为:{recv_data.decode('UTF-8')}")
socket_client.close()
以上就是今天要讲的内容,本文仅仅简单介绍了Socket的基础使用,适合入门
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。