首页 > 编程语言 >python socket 开发

python socket 开发

时间:2023-02-28 15:22:05浏览次数:44  
标签:socket python server 开发 msg recv 连接 客户端

  • socket 服务端开发
#socket 服务端开发
import socket

# 创建socket 对象
socket_server = socket.socket()
# 绑定ip 地址和端口
socket_server.bind(("localhost",8888))
# 监听端口
socket_server.listen(1)
# listen 方法内接收一个整数参数,表示接收的连接数量
#等待客户端连接
conn,address = socket_server.accept()
# accept()方法返回的是二元元组(连接对象,客户端地址信息)
# 可以通过 变量1,变量2 = socket_server.accept()的形式,直接接收二元元组内的两个元素
# accept()方法,是阻塞的方法,等待客户端的连接,如果没有连接,就卡在这一行不向下执行了
print(f"我接收到了客户端的连接,客户端的信息是: {address}")

while True:
    #接收客户端信息,要使用客户端和服务器的本次连接对象,而非socket_server 对象
    data = conn.recv(1024).decode("gbk")
    #recv 接收的参数是缓冲区大小,一般给1024 即可
    #recv方法的返回值是一个字节数组也是 bytest 对象,不是字符串,可以通过decode 方法通过UTF-8 编码,将字节数组转换为字符串对象
    print(f"客户端发来的信息是: {data}")
    #发送回复信息
    msg = input("请输入你要和客户端回复的消息:")
    if msg == "exit":
        break
    conn.send(msg.encode("gbk"))
#关闭连接
conn.close()
socket_server.close()

  • socket 客户端开发
"""
socket客户端开发
"""
import socket

# 创建socket 对象
socket_client = socket.socket()

# 连接到服务器
socket_client.connect(("localhost",8888))

while True:
    #发送消息
    msg = input("请输入要给服务段发送的信息: ")
    if msg == "exit":
        break
    socket_client.send(msg.encode("gbk"))

    #接收返回消息
    recv_data = socket_client.recv(1024)
    print(f"服务端回复的消息是: {recv_data.decode('gbk')}")
# 关闭连接
socket_client.close()



标签:socket,python,server,开发,msg,recv,连接,客户端
From: https://www.cnblogs.com/lixinliang/p/17164387.html

相关文章

  • waf2 开发分录里面的最后的合计不会自动更新,貌似是个bug。变通处理
    afterSaveCell:function(rowid,cellname,value,iRow,Col,oldValue){if(cellname=="moneyyuan"){waf("#editGrid").wafGrid('calcFooterData');//刷......
  • python+playwright 学习-17.模拟手机浏览器测试
    前言使用Playwright,您可以在任何浏览器上测试您的应用程序,也可以模拟真实设备,例如手机或平板电脑。设置手机模式只需配置您想要模拟的设备,Playwright就会模拟浏览器行......
  • 《流畅的Python》读后感
    《流畅的Python》这本书是一本非常有价值的Python编程书籍。它不仅涵盖了Python的基础知识,还深入探讨了许多高级主题,如装饰器、元类、协程等,让读者可以更深入地理解Py......
  • python对mysql数据库进行读写的操作
    python对mysql数据库进行读写的操作importpymysql#使用python连接mysql数据库,并对数据库进行添加数据的方法#创建连接,数据库主机地址数据库用户名称密码数据库......
  • Python中如何读写.bin文件?
    我们知道numpy的array是可以保存到文件的,一个常用的做法是通过to_file()保存到而进行.bin文件中,然后再通过from_file()从.bin文件中将其读取出来,下面看一个例子。data_in......
  • Android开发--Intent-filter属性详解
    如果一个Intent请求在一片数据上执行一个动作,Android如何知道哪个应用程序(和组件)能用来响应这个请求呢?IntentFilter就是用来注册Activity、Service和Broadca......
  • 助力企业数字化转型!低代码开发平台公司都有哪些产品?
    当前,自动化办公环境逐渐宽松和丰富。数据资源也成为很多企业非常看重的内部资源。毕竟,做好数据管理,可以链接企业各部门内部信息,也可以给企业高层做好发展决策创造基础条件......
  • C#中socket的简单使用
    一.Socket的概念Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口.当两台主机通信是,必须通过Socket连接,So......
  • 使用pip导出Python模块
    查看本地模块列表·#查看已安装模块#piplistor#pipfreeze打包本地模块打包单个模块pipdownloadpyarmor-d/root#pipdownload模块名-d路径打包全部......
  • 30. Laravel 开发第三方包
    Laravel开发第三方包使用Contracts代替Facades,因为扩展包不能访问Laravel提供的所有测试Facades的辅助函数。自动发现和注册Facades"extra":{"laravel......