python进阶__用socket封装TCP
想要理解socket协议,点击链接,出门左转
一、TCP 通信的服务器端编程的基本步骤:
- 服务器端先创建一个 socket 对象。
- 服务器端 socket 将自己绑定到指定 IP 地址和端口。
- 服务器端 socket 调用 listen() 方法监听网络。
- 程序采用循环不断调用 socket 的 accept() 方法接收来自客户端的连接
1 #创建socket 对象
2 s = socket.socket()
3 #将socket 绑定到本机IP 地址和端口
4 s.bind (('192.168.1.88', 30000))
5 #服务器端开始监听来自客户端的连接
6 s.listen()
7 while True:
8 #每当接收到客户端socket 的请求时,该方法就返回对应的socket 和远程地址
9 c, addr = s.accept()
10 ...
二、TCP 通信的客户端编程的基本步骤:
- 客户端先创建一个 socket 对象。
- 客户端 socket 调用 connect() 方法连接远程服务器。
1 import socket
2 import struct
3
4 class SelfPackage:#将接口内容封装在类SelfPackage中
5 def __init__(self,ip,port):
6 self.IP= ip
7 self.Port= port
8 self.stopthread = True
9 self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#创建客户端套接字,SOCK_STREAM对应协议类型为TCP
10 self.client.connect((self.IP, self.Port))
11
12 def client_connect(self,ip,port):#客户端连接IP及端口
13 self.client=socket.socket()
14 self.client.connect((ip,port))
15 return self.client
16
17 def get_current_msg(self):#客户端接收数据
18 status_msg = self.client.recv(2664)#每次接收2664字节
19 while len(status_msg)<2664: #如果接收到的字节长度不满2664,就要补齐,不能丢掉
20 status_msg += self.client.recv(2664)
21 return status_msg
22
23 def client_close(self):#关闭客户端
24 self.client.close()
创建客户端实例:
socket_tcp1=SelfPackage(ip="192.168.1.1",port=2222)
中国有句古话:祸福无门,惟人自招,善恶之报,如影随形。细看世间事,都有因果可循,而这因果,就藏在每个人的选择里。你选择善良做人,温柔待人,勤恳做事,总有一天,会被世界温柔以待,得到相应的回报,你选择尖酸刻薄,处处算计,总有一天,会自食恶果,殃及自身。善待别人,就是善待自己;尊重别人,就是庄严自己;宽容别人,就是放过自己。
python进阶__用socket封装TCP的更多相关文章
- Python进阶篇:Socket多线程
1. 初识Socket server和clinet之间的交互方式 2. 客户端和服务端的单次交互 ==================================== 服务端 import soc ...
- Python进阶(1)_Socket网络编程(基于tcp的socket)
网络协议参考:http://www.cnblogs.com/hedeyong/p/6889774.html 一.TCP/IP五层模型 学习socket一定要先学习互联网协议: 1.首先:本节课程的目标 ...
- Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令.
Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令. 一丶socket套接字 什么是socket套接字: 专业理解: socket是应用层与TCP/IP ...
- Python之路,Day8 - Socket编程进阶
Python之路,Day8 - Socket编程进阶 本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...
- python进阶---Python中的socket编程
初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...
- Python 之网络编程之socket(1)TCP 方式与UDP方式
一:socket介绍 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API) ...
- Python进阶【第一篇】socket
1.socket模块 要使用socket.socket()函数来创建套接字.其语法如下: socket.socket(socket_family,socket_type,protocol=0) soc ...
- python socket 模拟tcp通讯
对于tcp server 端的创建而言, 分为如下步骤: 1,创建socket对象(socket):其中俩个参数分别为 Address Family(如AF_INET为ipv4),AF_I ...
- python socket之tcp服务器与客户端demo
python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...
随机推荐
- SAP Web Dynpro-版本管理
您可以使用版本管理来管理对象的旧版本,比较版本,也可以重置它们. 在版本管理中,您可以存储ABAP开发对象的不同版本. 在ABAP工作台中,您可以比较不同版本的- 视图 视窗 控制器 您也可以存储对象 ...
- RPA 快手自动上传机器人
1.打开账号Cookie预存表格 2.机器人自动登录账号 3.机器人开始按照预设视频位置开始自动上传视频 4.机器人开始自动填写视频相关信息内容 5.完成后,可自动切换下一个账号继续上传
- 初学python常用,python模块安装和卸载的几种方法
兄弟们常常因为遇到模块不会安装,或者遇到报错就懵了,就很耽误学习进度,今天我们就一次性了解Python几种安装模块的方法~不过~ 实在是懒得看 点击此处找管理员小姐姐手把手教你安装 一.命令提示符窗口 ...
- CMU15445 (Fall 2019) 之 Project#2 - Hash Table 详解
前言 该实验要求实现一个基于线性探测法的哈希表,但是与直接放在内存中的哈希表不同的是,该实验假设哈希表非常大,无法整个放入内存中,因此需要将哈希表进行分割,将多个键值对放在一个 Page 中,然后搭配 ...
- 你真的了解JAVA中对象和类、this、super和static关键字吗
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...
- 2022-07-15 第六组 润土 Java03数据结构学习笔记
数据结构: 数组:最基本的数据结构(线性表) 链表:单向链表,双向链表 树:二叉树 图:深度优先遍历.广度优先遍历 查找: 线性查找 折半查找 排序: 冒泡排序* 快速排序 插入排序* 选择排序* 希 ...
- Solution -「线段树」题目集合
T1 无聊的数列 来自:Link flag 帖先从水题入手. 首先分析题目,它是以等差数列为原型进行的修改.等差数列一大性质就是其差分数列的值除第一项以外均相等. 于是不难想到使用差分数列进行维护. ...
- 我已经说了5种css居中实现的方式了,面试官竟然说还不够?
这是一篇关于居中对齐方式的总结 开篇之前,先问一下大家都知道几种居中的实现方式? 面试时答出来两三个就不错了,就怕面试官还让你继续说.今天就来总结一下这些居中的方式 使用flex布局设置居中. 使用f ...
- CF1703C Cypher 题解
题意:模拟一个 \(n\) 位密码锁. 做法:直接模拟,注意往后推,即若为 \(U\) 变为 \(D\),若为 \(D\) 变为 \(U\).注意 \(0\) 和 \(9\) 进行操作时的特判. #i ...
- DelayQueue达到定时触发效果
DelayQueue的特点就是插入Queue中的数据可以按照自定义的delay时间进行排序.只有delay时间小于0的元素才能够被取出. 这样子,只要开启一个线程循环从DelayQueue中取值执行, ...