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使用logging模块实现打印log到指定文件的方法
Sep 05 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
提升python处理速度原理及方法实例
Dec 25 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
Python 解析简单的XML数据
Jul 24 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
详解解决jupyter不能使用pytorch的问题
Feb 18 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 Python
Python基于百度AI实现抓取表情包
Jun 27 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
JS模板实现方法
2013/04/03 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
python实现猜单词小游戏
2020/05/22 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python 魔法函数实例及解析
2019/09/25 Python
python numpy数组复制使用实例解析
2020/01/10 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
监理资料员岗位职责
2014/01/03 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
道路建设实施方案
2014/03/18 职场文书
颁奖晚会主持词
2014/03/25 职场文书
公司收款委托书范本
2014/09/20 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
2016年少先队活动总结
2016/04/06 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
用python自动生成日历
2021/04/24 Python