伪代码:

ss = socket() #创建服务器套接字

ss.bind() #把地址绑定到套接字上

ss.listen() #监听连接(最大连接数)

info_loop: #服务器无限循环

cs = ss.accept() #接受客户端连接

comm_loop: #通信循环

cs.recv()/cs.send() #对话(接收/发送)

cs.close() #关闭客户端套接字

ss.close() #关闭服务器

所有的套接字都用socket.socket()函数来创建,服务器需要“坐在某个端口上“等待请求”所以它们必须要“绑定”到一个本地地址上,

由于TCP是一个面向连接的通信系统,在TCP服务器开始工作之前,要先完成一些设置,TCP服务器必须“监听”连接,设置完成之后服务器

就可以进入无限循环了。

一个简单的“单线程”服务器会调用accept()函数等待连接的到来,默认情况下accept()函数是阻塞的,即程序在连接到来之前会处于挂起状态,

套接字也支持非阻塞模式。

一旦接收到一个连接,accept()函数就会返回一个单独的客户端套接字用于后续的通信。

简单的TCP服务器

代码如下

#!/usr/bin/env python3#-*- coding:utf-8 -*-

from socket import *

from time importctime

host= ''port= 12345buffsize= 2048ADDR=(host,port)

tctime=socket(AF_INET,SOCK_STREAM)

tctime.bind(ADDR)

tctime.listen(3)whileTrue:print('Wait for connection ...')

tctimeClient,addr=tctime.accept()print("Connection from :",addr)whileTrue:

data=tctimeClient.recv(buffsize).decode()if notdata:breaktctimeClient.send(('[%s] %s' %(ctime(),data)).encode())

tctimeClient.close()

tctimeClient.close()

TCP客户端代码:

#!/usr/bin/env python3#-*- coding:utf-8 -*-

from socket import *HOST='localhost'PORT= 12345BUFFSIZE=2048ADDR=(HOST,PORT)

tctimeClient=socket(AF_INET,SOCK_STREAM)

tctimeClient.connect(ADDR)whileTrue:

data= input(">")if notdata:breaktctimeClient.send(data.encode())

data=tctimeClient.recv(BUFFSIZE).decode()if notdata:break

print(data)

tctimeClient.close()

note:

如果实在ubuntu下面做练习,需要在防火墙上添加allow条目,具体命令是

ufw allow 12345/tcp

也可以直接关闭防火:

ufw disable

python gui界面 tcp_通过python实现TCP编程相关推荐

  1. python gui界面 tcp_带Tkinter GUI的Twisted TCP服务器

    最近我一直在尝试使用Twisted(python库)来制作TCP聊天服务器/客户端.我让服务器运行得很好,但是当我试图向服务器添加基于Tkinter的GUI时,事情变得很奇怪.一旦用户连接到服务器,就 ...

  2. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  3. Python GUI界面编程-初识

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面.与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上 ...

  4. 【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解)

    [GUI界面]基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解) 方法汇总: blog.csdn.net/weixin_53403301/article/details/128 ...

  5. Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典

    Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...

  6. python前端界面实现交互,python的交互模式是什么

    如何进入python交互界面 Python交互模式有两种:图形化的交互模式或者命令行的交互模式.打开步骤:首先点击开始菜单. 然后在搜索栏中输入Python,即可看到图形化的交互模式(IDLE(Pyt ...

  7. Python GUI界面编程初步 05- GUI框架PyQt的运用 - 01 PyQt的详细安装和基本使用

    前言: 在01节里面,我们简单的讨论了一下各个GUI框架的优劣.PyQt作为一个传统的GUI的兼容工具,对拖拽来设计GUI的开发来说是极其方便和简单的. 1 简介: PyQt connects the ...

  8. Python GUI界面编程初步 02 - Tkinter基础

    前言: 前一篇我们大致介绍了Python编程的几个常用的GUI的工具和库.现在我们开始用其中的几个进行GUI设计. 考虑到,现在有一个项目包括传统的GUI编程,同时客户需要比较完备的图形显示,而这个又 ...

  9. Python GUI界面编程初步 01 - GUI库的特点和选择

    1 Python 的常用GUI库和特点 Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix ...

最新文章

  1. Nature重磅:管轶等发现穿山甲是SARS-CoV-2的中间宿主
  2. ChubaoFS:一个面向大规模容器平台的分布式文件系统
  3. JS ===和==区别
  4. 地面控制点的定义与作用_彩色透水混凝土路面在海绵城市建设中能起多大作用?...
  5. pdf转swf linux,Linux环境安装配置Swftools,pdf转swf工具
  6. 响应式mysql_Spring Data R2DBC响应式操作MySQL
  7. 测试ips显示器的软件,IPS屏幕显示测试
  8. oracle快照点,Oracle快照(snapshot)管理
  9. 使用Vue+DataV+ECharts打造新冠肺炎疫情数据大屏(可动态刷新)
  10. android 图片 色温,屏幕色温测试及测试结果
  11. excel表格末尾添加一行_Excel表格制作在添加数据之后可以自动更新的汇总表
  12. Workbook 对象 应用示例
  13. IDT7206简明资料
  14. 从Dinic到ISAP,从余流推进到最高标号的预留推进HLPP(究极最大流算法)
  15. python爬虫二级子页面爬取
  16. h5 rtmp推荐控件_RTMP H5 直播流技术解析
  17. 如何写软件测试人员的周报(或日报)
  18. 将tomcat源码以maven方式运行
  19. 关于戴尔笔记本电脑操作中突然卡死初始化存储,自我检查然后卡兹一声的解决方法
  20. 区块链游戏的正名之路:从庞氏骗局,到道具确权

热门文章

  1. 跨时钟域电路设计——多bit信号FIFO
  2. halcon相关的链接
  3. 操作系统实验文件管理_系统设计硬核知识(5)——操作系统的文件管理
  4. Redis(1) 简介以及linux环境下的安装
  5. 全虚拟化和半虚拟化的区别 cpu的ring0~ring3又是什么概念?
  6. 设计模式--简单工厂(个人笔记)
  7. makefile 完美教程
  8. 【NOIP2012】旅行计划
  9. Axure RP 的安装与卸载
  10. 六月计划#2B(6.10-6.16)