python中的TCP(传输控制协议)用法实例分析


Posted in Python onNovember 15, 2019

本文实例讲述了python中的TCP(传输控制协议)用法。分享给大家供大家参考,具体如下:

1.TCP与UDP的不同:

windows网络调试助手下载:https://pan.baidu.com/s/1IwBWeAzGUO1A3sCWl20ssQ
提取码:68gr

或者点击此处本站下载

  • 面向连接(确认有创建三方交握,连接以创建的传输)
  • 有序数据传输
  • 重发丢失的数据包
  • 舍弃重复的数据包
  • 无差错的数据传输
  • 阻塞/流量控制

2.客户端:

import socket
def main():
  # 创建套接字
  tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 连接服务器
  #tcp_socket.connect(("172.17.3.97",8080))
  server_ip = input("请输入要链接的服务器ip:")
  server_port = int(input("请输入要链接的服务器port:"))
  server_addr = (server_ip,server_port)
  tcp_socket.connect(server_addr)
  # 发送数据/接收数据
  send_data = input("请输入要发送的数据:")
  tcp_socket.send(send_data.encode("gbk"))
  #关闭套接字
  tcp_socket.close()
if __name__ == "__main__":
  main()

3.服务端:可以开启多个网络调试助手(客户端)测试

循环为多个客户端服务,并且循环为同一个客户端服务

import socket
def main():
  # 创建套接字
  tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定本地信息
tcp_server_socket.bind("",7890)
# 让默认套接字由主动变为被动listen
tcp_server_socket.listen(128)
while True:
  print("等待一个新的客户端......")
  # 等待客户端的连接 accept
  new_client_socket ,client_addr = tcp_server_socket.accept()
  print("一个新的客户端已到来%s" %str(client_addr))
  while True:
    # 接受客户端发过来的请求
    recv_data = new_client_socket.recv(1024)
    print("客户端发来的请求是%s" %recv_data.decode("gbk"))
    # 如果recv解堵塞,那么有两种方式:
    # 1.客户端发来数据
    # 2.客户端调用close
    if recv_data:
      # 回送一部分数据给客户端
      new_client_socket.send("hahaha".encode("gbk"))
    else:
      break
  # 关闭套接字
  new_client_socket.close()
  print("服务完毕,谢谢光临!")
# 如果将监听套接字关闭,会导致不能再次等待新的客户端到来
tcp_server_socket.close()
if __name__ == "__main__":
  main()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
python获取本地计算机名字的方法
Apr 29 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
详解Django中间件执行顺序
Jul 16 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 Python
Python配置虚拟环境图文步骤
May 20 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python 五子棋如何获得鼠标点击坐标
Nov 04 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
python中spy++的使用超详细教程
Jan 29 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 #Python
django实现类似触发器的功能
Nov 15 #Python
Python socket实现的文件下载器功能示例
Nov 15 #Python
Django通过dwebsocket实现websocket的例子
Nov 15 #Python
Python numpy线性代数用法实例解析
Nov 15 #Python
Django中提示消息messages的设置方式
Nov 15 #Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 #Python
You might like
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
ie focus bug 解决方法
2009/09/03 Javascript
javascript定义函数的方法
2010/12/06 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
Champion官网:美国冠军运动服装
2017/01/25 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
农林环境专业求职信
2014/03/13 职场文书
导游个人求职信
2014/04/25 职场文书
学习之星事迹材料
2014/05/17 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
八年级物理教学反思
2016/02/19 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python