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中for循环的使用
Apr 14 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
用pandas按列合并两个文件的实例
Apr 12 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
快速排序的四种python实现(推荐)
Apr 03 Python
Python简易版停车管理系统
Aug 12 Python
python自动识别文本编码格式代码
Dec 26 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
Python logging模块写入中文出现乱码
May 21 Python
详解Python yaml模块
Sep 23 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权限分配的实现代码
2013/04/28 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
分享给Python新手们的几道简单练习题
2017/09/21 Python
python基础练习之几个简单的游戏
2017/11/10 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
Python 中Operator模块的使用
2021/01/30 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
KTV的创业计划书范文
2014/02/02 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
整改报告怎么写
2014/11/06 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS