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通过pil将图片转换成黑白效果的方法
Mar 16 Python
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
python计算一个序列的平均值的方法
Jul 11 Python
Python解析最简单的验证码
Jan 07 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
详解Python中的array数组模块相关使用
Jul 05 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
Python实现分数序列求和
Feb 25 Python
python中的错误如何查看
Jul 08 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 Python
Python实现滑雪小游戏
Sep 25 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
第八节--访问方式
2006/11/16 PHP
php桌面中心(二) 数据库写入
2007/03/11 PHP
php 读取文件乱码问题
2010/02/20 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
从零学Python之入门(四)运算
2014/05/27 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
python实现大转盘抽奖效果
2019/01/22 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python实现邮件循环自动发件功能
2020/09/11 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
高中军训感言400字
2014/02/24 职场文书
团日活动总结书格式
2014/05/08 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
辞职信怎么写
2015/02/27 职场文书
实习生个人总结范文
2015/02/28 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技