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 文件和输入输出小结
Oct 09 Python
python pdb调试方法分享
Jan 21 Python
python基于windows平台锁定键盘输入的方法
Mar 05 Python
快速入门python学习笔记
Dec 06 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
python做反被爬保护的方法
Jul 01 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
python3 实现口罩抽签的功能
Mar 11 Python
使用Python实现批量ping操作方法
May 06 Python
PyTorch 导数应用的使用教程
Aug 31 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
php之Smarty模板使用方法示例详解
2014/07/08 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
php操作redis缓存方法分享
2015/06/03 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
jQuery语法总结和注意事项小结
2012/11/11 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
对Python3 解析html的几种操作方式小结
2019/02/16 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
Python argparse模块使用方法解析
2020/02/20 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
python怎么删除缓存文件
2020/07/19 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
Servlet方面面试题
2016/09/28 面试题
工商管理实习生自我鉴定范文
2013/12/18 职场文书
活动邀请函范文
2014/01/19 职场文书
机关单位动员会主持词
2014/03/20 职场文书
中秋节主持词
2014/04/02 职场文书
离婚财产分配协议书
2014/10/21 职场文书
党员发展大会主持词
2015/07/03 职场文书
2016国培学习心得体会
2016/01/08 职场文书
Nginx如何配置根据路径转发详解
2022/07/23 Servers