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

魔兽世界 建设公会网站企业网站建设步骤

魔兽世界 建设公会网站,企业网站建设步骤,做网站需要缴什么费用,什么语言建手机网站前言 用简洁的语言写一个可以与TCP客户端实时通信的界面。之前做了一个项目是要与PLC进行信息交互的界面,在测试的时候就利用TCP客户端来实验,文末会附上TCP客户端。本文分为三部分,第一部分是在界面向TCP发送数据,第二部分是接收…

前言

用简洁的语言写一个可以与TCP客户端实时通信的界面。之前做了一个项目是要与PLC进行信息交互的界面,在测试的时候就利用TCP客户端来实验,文末会附上TCP客户端。本文分为三部分,第一部分是在界面向TCP发送数据,第二部分是接收TCP发送过来的数据,需要开启线程(因为界面是在不断刷新的,所以不开线程一直等待PLC发送数据过来,界面是会卡住的)。

一、向TCP客户端发送数据

1.导入相关库

import socket  #TCP
from tkinter import *

2.定义向TCP发送数据的函数

message_text 是通过文本框输入的内容,需要利用.get()来获取,这个涉及到Entery组件的方法,详见我之前写过的文章

# 向TCP服务端发送数据
def senddata(send_message):message_text = send_message.get() #获取文本内容socket_client.send(message_text.encode())  #发送

3.创建TCP客户端
注意其中的’127.0.0.1’是要与TCP客户端通信的IP地址,两边需要一致,2001是端口,也需要一致。

# 创建socket客户端变量
socket_client = ''
# 创建全局变量
global command
socket_client = socket.socket() #创建一个客户端对象
socket_client.connect(('127.0.0.1', 2001))  #设置IP地址及端口

4.主界面的程序
创建一个top对象界面,放置文本框接收用户输入的信息,按下“发送”按钮后,执行发送函数

# 主界面程序
top = Tk()
top.title("聊天窗口")  # 窗口标题
top.geometry("500x500")  # 窗口尺寸
top.configure(bg = "LightGreen")  # 窗口背景颜色
#发送窗口
Label(top ,text ="发送窗口" , font = ("微软雅黑",12), bg = "LightGreen").place(x= 50,y = 370) 
send_message = Entry(top,width=45)  #文本输入框
send_message.place(x=50 , y=400)  #摆放位置
Button(top,text = "发送",font = ("黑体",12), command = lambda: senddata(send_message)).place(x= 400,y = 395)   #发送按钮
top.mainloop()  # 消息循环

5.实现效果
记得要修改TCP客户端对应的IP和端口,然后打开开关!不能发送中文!会乱码
向TCP发送 hello

二、开线程接收TCP发过来的数据

我们继续在上述程序中增加接收信息的函数。因为要等待接收信息需要,所以要另外开启一个线程,防止一直等待
1.导入threading线程库

import socket
import threading
from tkinter import *

2.定义等待TCP发送来过数据的函数receive

# 等待TCP服务端发送信息
def receive():while 1:command = socket_client.recv(1024).decode()  #接收canvas.create_text(10,10,text = command,fill ='#7CCD7C',anchor = W,font =('微软雅黑',12))  #把接收的信息(文本)放在画布

3.主程序开启线程
这里我是放在创建top界面对象之前的。后面会有完整程序

# 创建socket客户端变量
socket_client = ''
# 创建全局变量
global command
socket_client = socket.socket()
socket_client.connect(('127.0.0.1', 2001))# 开启线程,用于接收receive,更新到界面
thread = threading.Thread(target=receive)  #receive函数
thread.daemon = True
thread.start() #启动线程
# 主界面程序
top = Tk()
top.title("聊天窗口")  # 窗口标题
top.geometry("500x500")  # 窗口尺寸
top.configure(bg = "LightGreen")  # 窗口背景颜色

4.设置画布接收信息
在主界面增加一个画布,用于接收从TCP客户端发送过来的信息。画布的创建可以看这里我之前写过写过的文章

#接收聊天信息的界面
Label(top ,text ="接收窗口" , font = ("微软雅黑",12), bg = "LightGreen").place(x= 50,y = 20) 
canvas= Canvas(top,width=400,height=300,bg="white")  #创建画布
canvas.place(x=50 , y=50)

5.实现效果

这样就完成了TCP客户端相互通信的程序,但是上述程序只是完成简单收发,可以看到TCP发送多次过来,画布上的文字信息是会重叠在第一行的,完整程序看最后。
接收TCP发送的信息

三、完整的程序

import socket
import threading
from tkinter import *# 向TCP服务端发送数据
def senddata(send_message):message_text = send_message.get() #获取文本内容socket_client.send(message_text.encode())  #发送
# 等待TCP服务端发送信息
def receive():k = 10  #文字在画布中初始高度while 1:command = socket_client.recv(1024).decode()  #接收if k <300:#canvas文本方法中的10是横坐标,k是纵坐标,k是一直在往下变化的canvas.create_text(10,k,text = command,fill ='#7CCD7C',anchor = W,font =('微软雅黑',12)) k = k+20  #每一行增加20个单位,往下显示else:k = 10 #直到满屏后,重回初始单位canvas.delete("all")  #写满之后清屏# 创建socket客户端变量
socket_client = ''
# 创建全局变量
global command
socket_client = socket.socket()
socket_client.connect(('127.0.0.1', 2001))# 开启线程,用于接收receive,更新到界面
thread = threading.Thread(target=receive)  #receive函数
thread.daemon = True
thread.start() #启动线程
# 主界面程序
top = Tk()
top.title("聊天窗口")  # 窗口标题
top.geometry("500x500")  # 窗口尺寸
top.configure(bg = "LightGreen")  # 窗口背景颜色#接收聊天信息的界面组件
Label(top ,text ="接收窗口" , font = ("微软雅黑",12), bg = "LightGreen").place(x= 50,y = 20) 
canvas= Canvas(top,width=400,height=300,bg="white")  #创建画布
canvas.place(x=50 , y=50)#发送窗口的组件
Label(top ,text ="发送窗口" , font = ("微软雅黑",12), bg = "LightGreen").place(x= 50,y = 370) 
send_message = Entry(top,width=45)  #文本输入框
send_message.place(x=50 , y=400)
Button(top,text = "发送",font = ("黑体",12),width = 7 , height = 1, command = lambda: senddata(send_message)).place(x= 400,y = 395)   #发送按钮top.mainloop()  # 消息循环

写了一个小学生作文
以上就是关于tkinter界面发送信息给TCP客户端及tkinter开启线程接收信息的方法。附件是TCP客户端软件网络调试助手 密码lyx4

http://www.dinnco.com/news/67172.html

相关文章:

  • 设计公司网站欣赏优化设计四年级上册数学答案
  • 佛山网站推广市场百度竞价排名收费
  • 网上做展板素材的网站提升关键词
  • 做淘宝必备的网站seo简单速排名软件
  • 做黄金理财的网站百度竞价托管代运营
  • 网站超链接怎么做 word全网热搜榜
  • 成都网站制作定制销售怎么做
  • 网站建设有名的公司温州seo公司
  • 吉安网站建设兼职网络推广哪个好
  • 顺德网站建设多少钱网站一级域名和二级域名区别
  • 基础展示型网站和cms百度网页版官网
  • 哪些网站是python做的互联网推广中心
  • 企业网站开发价格国内最新新闻
  • 个人网站设计html品牌推广计划书怎么写
  • 网站界面(ui)设计形考任务1海门网站建设
  • 免费模板网站下载建站seo是什么
  • 中陕核建设集团网站公司网站注册流程和费用
  • 厦门软件园多客宝网站开发什么是百度竞价排名服务
  • 建设淘宝网站的目的推广网站seo
  • 做电影网站年度关键词有哪些
  • 甘肃 网站建设郑州网络营销公司
  • 免费购物网站朋友圈推广怎么收费
  • 网站建设的目的及定位功能河南网站建设公司哪家好
  • 互联网官方网站在线培训平台
  • 网站做鸭搜索网排名
  • 郑州做网站哪家好单页网站制作
  • 个人如何做微商城网站设计推广普通话手抄报图片大全
  • 学校网页网站模板网络营销策划ppt范例
  • 网站建设与制作的流程东莞seo搜索
  • 云南网站做的好的公司简介网络营销未来有哪些发展趋势