当前位置: 首页 > news >正文

广东h5网站建设网站的根目录怎么找

广东h5网站建设,网站的根目录怎么找,微信公众号免费导入wordpress,唐山营销型网站制作基于Socket的聊天室Python开发一、Socket简述二、创建服务端Server2.1 创建服务端初始化2.2 监听客户端连接2.3 处理客户端消息三、创建客户端Client3.1 创建服务端初始化3.2 发送消息3.3 接收消息3.3 线程工作3.4 线程工作是不是挺好玩的呢#xff1f;也可以作为课程设计哦也可以作为课程设计哦如果需要源码可以关注我弓中皓查看历史文章。关注“测试开发自动化” 弓中皓获取更多学习内容 一、Socket简述 SOCKET它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定一台计算机可以接收其他计算机的数据也可以向其他计算机发送数据。 Socket的主要的工作模式如下 我们就用上面的模式来开发一个聊天室工具主要的开发模块包括两部分 客户端开发服务端开发 可以部署在同一电脑上由于我只有一台电脑所以我将服务端和客户端都部署在了我自己的电脑上。你也可以部署在同一局域网的不同电脑上或使用其他的不同服务器进行部署效果展示 如果你们公司的网络是不允许接入互联网的那么你可以偷偷做一个局域网内的聊天小软件用于你跟心爱的女孩子之间聊天。哈哈哈哈。。 二、创建服务端Server 创建服务端的流程大致可以分为以下几个步骤 1创建客户端套接字(socket)对象 2绑定IP地址和端口号 3设置监听 4等待接受客户端的连接请求 5接受数据 6发送数据 7关闭客户端套接字(socket) 2.1 创建服务端初始化 该部分主要用于初始化服务端创建一个Severt类它不断监听客户端的发送的请求。 class Server:def __init__(self):self.server socket.socket() # 创建客户端套接字(socket)对象self.server.bind((192.168.20.164, 8989)) # 绑定IP地址和端口号self.server.listen(15) # 设置监听 15表示服务端等待排队连接的最大数量self.clients [] # 用于存放客户端的响应信息self.clients_name_ip {} # 用与存放客户端名称与IPself.get_conn() # 监听客户端连接2.2 监听客户端连接 通过设置一个死循环 让我们的服务端不断处于监听客户端的连接请求。一旦客户端发起一个连接请求accept()方法会返回当前连接的客户端的socket连接对象和IP地址。 通过 print(cilent)可以看到 socket.socket fd460, familyAddressFamily.AF_INET, typeSocketKind.SOCK_STREAM, proto0, laddr(192.168.20.164, 8989), raddr(192.168.20.164, 59239)此时服务器会向客户端输入一条信息data服务端需要将该信息编码encode发送给客户端。同时客户端接收到该信息后需要将其节码才能转为我们可以识别的内容。 def get_conn(self):while True:client, address self.server.accept() # 等待接收连接请求print(IP为{}的使用者正在请求连接。.format(address))data 与服务器链接成功请输入昵称才可以聊天client.send(data.encode()) # server与client通信send() decodeself.clients.append(client) # 链接用户添加到服务器的用户列表Thread(targetself.get_msg, args(client, self.clients,self.clients_name_ip, address)).start()2.3 处理客户端消息 为将发送的名称与IP进行绑定需要将客户端发送的用户名内容解码追加到clients_name_ip参数中。此时一旦客户端发来连接请求并输入了昵称那么昵称就会被解码存储在name变量中。 此时服务端开始循环监听该客户端的消息。并且不断将客户端发来的消息进行解码。并将消息通过for循环的形式重新编码发送给所有的客户端。 另外如果检测到客户端发来的消息是一个Q字符那么客户端就会被关闭。 def get_msg(self, client, clients, clients_name_ip, address):name client.recv(1024).decode() # 接受客户端发来的昵称print(昵称:【{}】 设置成功.format(name))clients_name_ip[address] name # 昵称与IP进行绑定while True: # 循环监听客户端消息try:recv_data client.recv(1024).decode()except Exception as e:self.close_client(client, address)break# 入如果用户输入Q推出if recv_data.upper() Q:self.close_client(client, address)breakfor c in clients:c.send((clients_name_ip[address] time.strftime(%x)\nrecv_data).encode())三、创建客户端Client 创建客户端的流程大致可以分为以下几个步骤 1创建客户端套接字(socket)对象 2和服务器端套接字(socket)建立连接 3发送数据 4接受数据 5关闭客户端套接字(socket) 3.1 创建服务端初始化 客户端采用PyQT5将客户端做成界面的形式进行交互。这里不对PyQT5做过多的解释。此处讲解使用的PyQT5比较简单重点对服务端socket开发进行讲解。 首先创建客户端socket对象并连接服务器端口并开启工作线程。 class Client(QWidget):def __init__(self):super(Client, self).__init__()self.setGeometry(600, 300, 360, 300)self.setWindowTitle(聊天室)self.add_ui() # 界面UI这个跟socket无关self.client socket.socket() # 与服务器链接self.client.connect((127.0.0.1, 8989))self.work_thread() # 调用线程3.2 发送消息 发送消息通过的是用户点击发送按钮点击发送按钮以后QT会以信号的形式触发执行send_msg函数。至此消息会被解码发送给服务器如果检测到发送消息是字符‘Q’那么客户端会被退出。 def btn_send(self): # 发送按钮点击信号发射self.button.clicked.connect(self.send_msg) def send_msg(self): # 检测到发送按钮点击该客户端就会向服务端发送数据msg self.message.text()self.client.send(msg.encode())if msg.upper() Q:self.client.close()self.destroy()self.message.clear()3.3 接收消息 通过接收消息将接收后的消息解码通过append的形式追加到QT的控件中用于在界面中显示 def recv_msg(self):while True:try:data self.client.recv(1024).decode()print(data)data data \nself.content.append(data)except:exit()3.3 线程工作 通过调用该方法来启动发送消息线程、接收消息线程。 def work_thread(self):Thread(targetself.btn_send).start() # 发送消息Thread(targetself.recv_msg).start() 3.4 线程工作 第一步启动服务器Server 第二步启动一个Client (pycharm) 第三步再启动一个Client (cmd) 是不是挺好玩的呢也可以作为课程设计哦如果需要源码可以关注我弓中皓查看历史文章。 关注“测试开发自动化” 弓中皓获取更多学习内容
http://www.dnsts.com.cn/news/242233.html

相关文章:

  • 建立网站服务器怎么弄腾讯企业邮箱app下载
  • 省内注销二建 建设部网站更新慢网站建设策划需要涉及
  • 邢台网站建设设计制作广西建设厅微信网站
  • 58招聘运营网站怎么做长沙人才网官网
  • 网站指向邮箱超链接怎么做做的好的地方网站
  • 阿里国际网站首页可以做全屏不深入解析wordpress 原书第2版 pdf 下载
  • 来广营网站建设长春微信做网站
  • 网站建设需要那些人才怎么看网站后台网页尺寸
  • 徐州建设局网站产品包装设计公司
  • 辽阳网站设计长春网站建设电话
  • 网站分为几种网络 网站
  • 福州网站制作套餐展厅设计手绘图
  • 服装网站建设规划书范文国土系统网站建设用地受理表
  • 天津响应式网站毕业设计医院网站设计怎么做
  • 做网站需要一些什么东西企业网站建设计什么科目
  • 滕州网站建设优化动易网站中添加邮箱
  • 万网的网站代码怎么看电脑版商城网站建设
  • 稻壳网站建设深圳网站建设服务便宜
  • 首页网站模板中英文网站为什么要分开做
  • 为什么要在南极建站西宁网站设计公司
  • 专门做淘宝优惠券的网站农业大学网站建设特点
  • 菏泽网站建设个人网站建设免费主机
  • 网站建设注意事项 南京wordpress默认上传路径
  • 安徽哪家公司做网站比较好物流网站首页图片
  • 鹤岗北京网站建设辽宁建设工程信息网 管网
  • 网站开发所以浏览器兼容模式网站设计开发方案
  • 永康建设网站电销app
  • 企业网站需要多大带宽网站排名seo软件
  • 设计得好的美食网站网站没有备案可以做百度推广吗
  • 四海网络网站建设定制专业做棋牌网站的