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 相关文章推荐
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
Python3中详解fabfile的编写
Jun 24 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
Python操作json的方法实例分析
Dec 06 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python socket处理client连接过程解析
Mar 18 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
python判断是空的实例分享
Jul 06 Python
python 解决函数返回return的问题
Dec 05 Python
python实现简单倒计时功能
Apr 21 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
Jun 11 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同时连接多个mysql数据库示例代码
2014/03/17 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
解决Vue动态加载本地图片问题
2019/10/09 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
python for 循环获取index索引的方法
2019/02/01 Python
python中的print()输出
2019/04/12 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Python requests接口测试实现代码
2020/09/08 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
python opencv实现图像配准与比较
2021/02/09 Python
安全生产先进个人材料
2014/02/06 职场文书
工作收入住址证明
2014/10/28 职场文书
工会经费申请报告
2015/05/15 职场文书