8.7 python日学 网络编程

一、软件开发结构
两个程序之间的通讯大致可以分为两种:
第一种是应用类程序:qq,微信之类
第二种是web类程序:用户只需访问浏览器即可访问程序,如百度,知乎,必应等
1.C/S架构
C/S即:Clien与Server,中文意思,客户端与服务器架构
这里的客户端泛指exe
2.B/S架构
B/S即:Browser与Server,中文意思,浏览器端与服务器端架构
只需在浏览器通过HTTP去请求服务器端的相关资源

二、网络协议
网络协议就是为了能让计算机网络中进行数据交换二建立的规则、标准
我们根据协议的功能,不同抽象成立4层
应用层,传输层,网络层,数据链路层
或7层
应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

三、TCP协议
TCP是面向连接的,可靠的协议
特点:数据安全,速度略低,分客户端和服务端

1.三次握手
在这里插入图片描述
2.四次挥手
在这里插入图片描述
四、UDP协议
面向无连接,数据不安全,速度快,不分客户端和服务端

五、socket
我们写的网络编程属于应用层,当我们写好程序后,需要将数据发送给运(传)输层。但是我们不了解运输层的协议,因此提供了socket层。对于用户来说,让socket去组织数据,以符合指定的协议,我们只负责编写逻辑即可。
简易聊天室

from socket import *

from threading import Thread

udp_s=socket(AF_INET,SOCK_DGRAM)

dest_address=(‘10.10.107.118’,8001)目的地址

udp_s.bind((‘10.10.107.118’,9002))绑订自身端口

def sent():

while True:

data=input(’’)

udp_s.sendto(data.encode(‘utf-8’), dest_address)

def recv():

while True:

s = udp_s.recvfrom(124)

print(s[0].decode(‘utf-8’))

if name == ‘main’:

t1=Thread(target=sent)

t2=Thread(target=recv)

t1.start()

t2.start()

上述代码,将目的地址和自身地址交换,再写一份文件,即可实现自己与自己聊天,也可以和局域网的朋友聊天。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值