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 相关文章推荐
easy_install python包安装管理工具介绍
Feb 10 Python
Python的print用法示例
Feb 11 Python
Python命令行参数解析模块getopt使用实例
Apr 13 Python
谈谈如何手动释放Python的内存
Dec 17 Python
Python用list或dict字段模式读取文件的方法
Jan 10 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
用Python写一段用户登录的程序代码
Apr 22 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Python语法分析之字符串格式化
Jun 13 Python
python实现键盘输入的实操方法
Jul 16 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Django在Model保存前记录日志实例
May 14 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 similar_text 字符串的相似性比较函数
2010/05/26 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python 实现简单的电话本功能
2015/08/09 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Python numpy 常用函数总结
2017/12/07 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
详解Python如何生成词云的方法
2018/06/01 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
本科生求职简历的自我评价
2013/10/21 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
主题团日活动总结
2014/06/25 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书