• Python---Socket 网络通信


    Socket :进程之间通信的工具,进程之间想要进行网络通信需要Socket,两个进程之间通过socket进行相互通讯,就必须有服务端和客服端。

    Socket服务端编程

    1. # 1.创建socket对象
    2. import socket
    3. socket_server = socket.socket()
    4. # 2. 绑定socket_server到指定IP和地址
    5. socket_server.bind(("localhost", 8888))
    6. # 3.服务器开始监听端口 listen方法内接收一个int整数,表示允许的链接数量,超出的会等待,可以不填,不填会自动设置一个合理的值
    7. socket_server.listen(1)
    8. # 4.接收客户端链接,获得链接对象
    9. # accept方法是阻塞方法,等待客户端的链接,如果没有链接,就卡在这一行不想下执行了。accept返回的是二元元组(链接对象,客户端的地址信息)
    10. # 等待客户端链接
    11. # result:tuple = socket_server.accept()
    12. # conn =result[0] # 客户端和服务端的链接对象
    13. # address = result[1] # 客户端的地址信息
    14. # 可以通过 变量1,变量2 = socket_server.accept() 的形式,直接接收二元元组内的两个元素
    15. conn, address = socket_server.accept() # 简写
    16. print(f"接收到了客户端的的链接,客户端的信息是:{address}")
    17. while True: # 持续通信
    18. # 5.客户端连接后,通过recv方法,接收客户端发送的消息(要使用客户端和服务端本次链接对象,而不是scoket_server对象)
    19. # recv接收的参数是缓冲区的大小,,一般给1024即可
    20. # recv方法返回值是一个字节数组也就是bytes对象,不是字符串,可以通过decode方法通过UTF-8编码将字节数组转换为字符串对象
    21. data: str = conn.recv(1024).decode("UTF-8")
    22. print(f"客户端发来的消息是:{data}")
    23. # 6.通过conn,调用send方法可以回复消息
    24. msg = input("请输入你要和客户端回复的消息")
    25. if msg == 'exit':
    26. break
    27. conn.send(msg.encode("UTF-8")) # encode方法可以将字符串编码转为字节数组对象
    28. # 7.关闭链接
    29. conn.close()
    30. socket_server.close()

    Socket客户端编程

    1. # Socket客户端编程
    2. # 1.创建socket对象
    3. import socket
    4. socket_client = socket.socket()
    5. # 2. 连接到服务端
    6. socket_client.connect(("localhost",8888))
    7. while True:
    8. # 3.发送消息
    9. msg=input("请输入你要和服务端发送的消息")
    10. if msg == 'exit':
    11. break
    12. socket_client.send("你好呀".encode("UTF-8"))
    13. # 4. 接收返回消息
    14. rece_data = socket_client.recv(1024)
    15. print(f"服务端回复的消息是:{rece_data.decode('UTF-8')}")
    16. # 5.关闭连接
    17. socket_client.close()

  • 相关阅读:
    使用强大的DBPack处理分布式事务(PHP使用教程)
    无法访问 github ,解决办法
    Python中的元组
    阅读类APP广告变现的商业化发展方向
    Android系统稳定性简述
    软考笔记(3)——浮点数
    聊一聊 golang 的测试与性能调优
    【Web书城】书城前端开发
    PyTorch 学习笔记 1 —— Quick Start
    OpenCore-Legacy-Patcher 0.5.1正式版
  • 原文地址:https://blog.csdn.net/weixin_52053631/article/details/134066288