Python使用socket模块实现简单tcp通信


Posted in Python onAugust 18, 2020

正文开始:

服务器端代码:

# 再来简单的测试,这个是服务器端
import socket
import sys

BUF_SIZE = 1024
ip_port = (r"127.0.0.1", 11552)

my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 先拿到套接字,指定个ipv4以及流式数据包
my_socket.bind(ip_port) # 绑定
my_socket.listen(2)

# 循环等待客户端连接
while True:
  print("waiting for client..")
  conn, address = my_socket.accept()
  print("connect from .." + str(address))

  # 循环接受
  while True:
    ret = conn.recv(BUF_SIZE)
    print("server receive data:" + str(ret))

    if "END" in str(ret):
      print("clent's gonna be offline.")
      conn.send(bytes("BYE", encoding="utf-8"))
      my_socket.close()
      sys.exit()
    else:
      conn.send(bytes("server copy", encoding="utf-8"))

客户端代码:

# 这个是客户端
import socket

BUF_SIZE = 1024
ip_port = (r"127.0.0.1", 11552)

my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_socket.connect(ip_port)

while True:
  data = input(">>>")

  my_socket.send(bytes(data, encoding="utf-8"))
  recieve_data = my_socket.recv(BUF_SIZE)
  print("client receive data = " + str(recieve_data))
  if "BYE" in str(recieve_data):
    print("server disconnect!")
    break

运行方法:

一个利用windows的cmd,直接输入命令:python server.py运行服务器

一个利用pycharm直接运行client.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python pickle 和 shelve模块的用法
Sep 16 Python
tornado捕获和处理404错误的方法
Feb 26 Python
详解Python中for循环的使用方法
May 14 Python
Python2.x与Python3.x的区别
Jan 14 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
详解django三种文件下载方式
Apr 06 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
Python ORM框架Peewee用法详解
Apr 29 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
python神经网络ResNet50模型
May 06 Python
python 浮点数四舍五入需要注意的地方
Aug 18 #Python
Python filter过滤器原理及实例应用
Aug 18 #Python
Python lambda表达式原理及用法解析
Aug 18 #Python
python 使用建议与技巧分享(四)
Aug 18 #Python
Python正则re模块使用步骤及原理解析
Aug 18 #Python
python使用建议技巧分享(三)
Aug 18 #Python
python3跳出一个循环的实例操作
Aug 18 #Python
You might like
一个简单计数器的源代码
2006/10/09 PHP
php自动加载的两种实现方法
2010/06/21 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
jQuery 表格工具集
2010/04/25 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
js实现圆盘记速表
2015/08/03 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
建筑实习自我鉴定
2013/10/18 职场文书
财务经理的岗位职责
2013/12/17 职场文书
交通事故调解协议书
2014/04/16 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
入党介绍人评语
2014/05/06 职场文书
python画条形图的具体代码
2022/04/20 Python
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技