Socket概念 TCP/IP 协议

#网络编程:通过网络让不同的计算机上运行的程序可以进行通信

#软件开发架构
#分为 应用类程序(qq) ,,web类程序(浏览器)

#C/S架构 :Client (客户端)与 Server(服务端架构)
#B/S架构:Browser (浏览器端)与 Server(服务端架构)

#每台电脑在网络世界中都有一个全球唯一的表示——ip地址
#物理地址 通常由12位16进制数表示(前6位厂编,后6位流水线号)
#ip地址的范围:0.0.0.0–255.255.255.255(四段十进制数)

#ARP:地址解析协议。根据IP地址获取物理地址的一个TCP/IP协议。

#电脑上的每一个应用程序想运行必须占一个端口号,
#并且端口号同时间只能被一个应用程序占用。
#每一台电脑上一共有65536个端口,端口的范围是0~65535。
#一般0~1023被一些其他应用已经占用,因此我们一般从1024开始指定端口。

#网络协议就是为了能让计算机网络中进行数据交换而建立的规则,标准。
#根据TCP/IP 协议族抽象成4层,应用层,传输层,网络层,数据链路层。

#为了在传输的过程中保证数据不丢失,需要在每层加上一些额外的内容。
#应用层 应用层
#传输层 (选择通信协议) 传输层
#网络层 (加上一个ip信息) 网络层
#数据链路层(mac地址) 数据链路层
#物理层(网卡,网线)—————————物理层

#TCP协议特点:数据安全,速度略低。
#TCP协议的三次握手,四次挥手。
#第一次握手:是客户端让服务器准备好资源。
#第二次握手:服务端资源准备好了并且服务端问客户端资源有没有准备好。
#第三次握手:客户端资源也准备好了。接下来才真正的发生数据。
#第一次挥手:客户端告诉服务端我不会给你发数据了。
#第二次挥手:服务端告诉客户端我收到你发生的信息了。
#第三次挥手:服务端给客户端发生数据说我也不给你发了。
#第四次挥手:客户端给服务端说我知道了。

#UDP协议:面向无连接,速度快。(视频传输)

#OSI模型(七层)
#1,应用层 2,表示层 3,回话层 4,传输层 5,网络层 6,数据链路层 7,物理层

#Socket概念
#Socket层:套接字。

#server(服务器端)
import  socket
server=socket.socket(type=socket.SOCK_DGRAM)#创建一个服务器socket对象
server.bind(('10.10.42.249',9000))#监听本机9000端口 自己的ip地址
while True:
    #接收从客户端发过来的信息
    msg,addr=server.recvfrom(1024)#信息  IP地址
    msg=msg.decode('utf-8')
    print('客户端',msg)
    content=input(':')#内容
    content=content.encode('utf-8')
    #向客户端发送消息
    server.sendto(content,addr)#b 转化为二进制 值
#关闭套接字
server.close()

#client(客户端)
import socket#套接字
client=socket.socket(type=socket.SOCK_DGRAM)
ip_port=('10.10.42.249',9000)#服务器地址和端口
while True:
    content=input(':')#将 向服务器发送的信息 改为输出
    content=content.encode('utf-8')#修改信息的编码
    client.sendto(content,ip_port)#向服务器发送一条信息
    msg,addr=client.recvfrom(1024)#接收从服务器返回的一条信息
    msg=msg.decode('utf-8')
    print('服务端',msg)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值