想要理解socket协议,点击链接,出门左转

一、TCP 通信的服务器端编程的基本步骤:

  1. 服务器端先创建一个 socket 对象。
  2. 服务器端 socket 将自己绑定到指定 IP 地址和端口。
  3. 服务器端 socket 调用 listen() 方法监听网络。
  4. 程序采用循环不断调用 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 通信的客户端编程的基本步骤:

  1. 客户端先创建一个 socket 对象。
  2. 客户端 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的更多相关文章

  1. Python进阶篇:Socket多线程

    1. 初识Socket server和clinet之间的交互方式 2. 客户端和服务端的单次交互 ==================================== 服务端 import soc ...

  2. Python进阶(1)_Socket网络编程(基于tcp的socket)

    网络协议参考:http://www.cnblogs.com/hedeyong/p/6889774.html 一.TCP/IP五层模型 学习socket一定要先学习互联网协议: 1.首先:本节课程的目标 ...

  3. Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令.

    Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令. 一丶socket套接字 什么是socket套接字: ​ ​  ​ 专业理解: socket是应用层与TCP/IP ...

  4. Python之路,Day8 - Socket编程进阶

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  5. python进阶---Python中的socket编程

    初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...

  6. Python 之网络编程之socket(1)TCP 方式与UDP方式

    一:socket介绍 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API) ...

  7. Python进阶【第一篇】socket

    1.socket模块 要使用socket.socket()函数来创建套接字.其语法如下: socket.socket(socket_family,socket_type,protocol=0) soc ...

  8. python socket 模拟tcp通讯

    对于tcp server 端的创建而言, 分为如下步骤:   1,创建socket对象(socket):其中俩个参数分别为     Address Family(如AF_INET为ipv4),AF_I ...

  9. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

随机推荐

  1. 自己实现一个自定义React项目脚手架「ReactCli」

    前言 首先为什么想到自己实现一个React脚手架呢?是因为之前刚接触create-react-app时,觉得不太灵活.虽然文件目录很清晰,但是还是觉得不如VueCLI的可以自定义配置更加灵活.当然Re ...

  2. Win 系统下使用gnvm操作node版本

    下载 gnvm官方网址 有好几种安装方式,我这里使用的是百度网盘下载. 安装 下载完成将gnvm.exe文件放到node的安装根目录下,如果你不知道安装目录在哪?可以使用命令: where node ...

  3. Java开发学习(六)----DI依赖注入之setter及构造器注入解析

    一.DI依赖注入 首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法) 构造方法 依赖注入描述了在容器中建立bean与bean之间的依赖关 ...

  4. C#/VB.NET 将PDF转为Excel

    PDF文档可以避免可防⽌他⼈⽆意中触到键盘修改⽂件内容.但是在避免他人⽆意修改的同时也妨碍了正常的修改.如果你想处理或修改PDF文档中的数据,不妨试试用Excel来实现.Excel拥有强大的数据处理功 ...

  5. 【前端面试】(三)JavaScript相等(==)和全等(===)运算符的区别

    视频链接: JavaScript相等()和全等(=)运算符的区别 - Web前端工程师面试题讲解 参考链接: JavaScript == 与 === 区别 区别 对于string.number 等基础 ...

  6. Linux编辑shell脚本快速启动jar包

    1.上传jar包到服务器 2.创建并编辑start.sh文件 vi start.sh 将下面内容复制到文件中 ps -ef|grep xf-demo |grep -v grep |awk '{prin ...

  7. 更好的Android多线程下载框架

    /** * 作者:Pich * 原文链接:http://me.woblog.cn/ * QQ群:129961195 * Github:https://github.com/lifengsofts */ ...

  8. 如何搭建android源代码repo仓库

    如何搭建android源代码repo仓库 目录 如何搭建android源代码repo仓库 1 repo是如何管理仓库的? 1.1 repo如何工作的? 1.2 搭建repo服务需要做哪些事情? 2 部 ...

  9. CentOS7系统DNS主从配置

    CentOS7系统DNS主从配置:一.DNS服务器正向解析:1.1 基础环境:主机IP          主机名      操作系统    用途192.168.0.110   master      ...

  10. ArrayList集合存储基本数据类型

    如何存储基本数据类型 ArrayList对象不能存储基本类型,只能存储引用类型的数据.类似 <int> 不能写,但是存储基本数据类型对应的 包装类型是可以的.所以,想要存储基本类型数据, ...