关于python3 网络编程

                                                                                 关于网络编程的概述

通过物理的方式,将零散的各个计算机平台,连接在一起,实现数据的交互实现点对点、或点对面访问,在经过多年的网络技术发展,也衍生多种计算机网络标准,但是经过ISO(国际标准化组织)统一后,定义了网络数据传输模型,(OSI/RM)参考模型,规范了现在网络不同层级的传输协议,实现网络互连。

  1. 网络编程中的服务端&客户端

服务端:(硬件服务端、软件服务端)

 

#定义连接信息
HOST=''
PORT=8080
ADDRESS =(HOST,PORT)
BUFFER =1024
#创建一个人tcp服务端套接字对象
tcp_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定主机端口号
tcp_server.bind(ADDRESS)
tcp_server.listen(5)

while True:
    #等待客户端接入,建立连接
    print("waiting for connect")
    server_socket,addr=tcp_server.accept()
    print("client already connect! welcome to server :",addr)
    while True:
        info=input("请输入你要输入的信息:")
        server_socket.send(info.encode("utf-8"))
        mg = server_socket.recv(BUFFER)
        print("client:",mg.decode("utf-8"))
        if mg ==b"bey":
            server_socket.close()
            break

在计算机网络中,服务端,就是将预先设置或上线的功能服务于访问服务端的每个主机,是的每个主机都能使用或体验服务断电功能。

客户端:(硬件客户端、软件客户端)

import  socket
#要连接的ip地址
TARGET_HOST="XXX.XX.XX.XX"
TARGET_PORT=8080
TARGET_ADDRESS=(TARGET_HOST,TARGET_PORT)
BUFFER =1024
tcp_client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_client.connect(TARGET_ADDRESS)
#接受 发送服务端的信息
while True:
    mg =tcp_client.recv(BUFFER)
    print('sever:',mg.decode("utf-8"))
    md = input("请输入您要发送的信息:")
    tcp_client.send(md.encode("utf-8"))
    tcp_client.close()
    if mg=="BEY":
        tcp_client.close()
        break

在有服务端的前提下,才会衍生出客户端

  1. Ip (寻址协议)

IP:(internet portocal)网络通信寻址协议

Ip寻址协议共有四类方式:

 A:由1字节的网络地址和3字节的主机地址组成,最高位必须为“0”,地址范围从1.0.0.0到126.0.0.0 可用网络地址共有126个,每个地址可容纳1亿多主机。

  B:由2字节的网络地址和2字节的主机地址组成,最高位必须“10”,地址范围从128.0.0.0到191.255.255.255。可用地址共计16382个,每个地址可容纳6万个主机。

  C:由3字节的网络地址和3字节的主机地址组成,最高位必须“110”,地址范围从192.0.0.0到223.255.255.255。可用地址共计209万个,每个地址可容纳254个主机。

  D:多用于多点广播,以第一字节“1110”开始,地址范围从224.0.0.0到239.255.255.255。

  E:类 IP 地址 以“llll0”开始,为将来使用保留。240.0.0.0 到 255.255.255.254 255.255.255.255 用于广播地址.

  1. Python的网络编程

在python2X 、python3X中对于网络的支持是及其友好,python中通过套接字socket对象的连接,完成多种协议的网络程序服务端/客户端的开发和数据通信。

Socket的出现是为了区分不同平台的体系的套接字对象,定义了地址家族的概念Adress Family,也经常简写为AF。

第一种家族套接字,称为AF_UNIX、AF_LOCAL,这是POSIXI标准中规范。

  1. Tcp 编程

Tcp(Transmission Control Protocal)传输控制协议

主要是面向对象、可靠、基于字节流的传输层通信协议

 

三次建立连接握手:

  一:

  • A- > B:发送一个寻址请求码 seq=100;
  • B->A:返回一个应答 ack=101

二:

  • A->B:发送一个确认请求码 seq=101,确认连接
  • B->A:返回一个应答 ack=300

三:

  • A->B:发送一个连接请求码 ack=300;
  • B->A:返回应答 ack=80 n A 和 B 之间开始进行数据交互

四次挥手断开连接:

一:

  • A->B:发送一个数据验证请求码 seq=100
  • B->A:返回一个应答 ack=101

                 二:

  • A->B:发送一个传输结束标记:seq=101
  • B->A:返回一个应答 ack=200

                 三:

  • A->B:发送一个确认结束标记:seq=200
  • B->A:返回一个应答 ack=300

                  四:

  • A->B:发送连接断开标记:seq=300;B->A:返回断开连接应答:ack=400
  1. 有了三次握手和四次挥手对于连接的可靠性的保障,才让TCP协议端对端的数据交互变动可靠和安全性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值