阅读背景:

并发编程网络编程和数据库的基础操作

来源:互联网 

第二部分

网络编程之 osi七层模型和三次握手四次挥手 socket

# by luffycity.com
# 概念
    # 应用层 http https ssl smtp ftp
    # 传输层 tcp udp  端口信息  四层路由器 四层交换机
        # tcp
            # 可靠的 面向连接的 全双工的 流式传输 效率低
            # 三次握手和四次挥手
                # 三次握手
                    # 把图背下来 syn ack
                # 四次挥手
                    # 把图背下来 fin ack
            # 黏包 : (自定义协议)先发送数据的长度,再发送数据
        # udp 效率高 不可靠 无连接 基于数据包的传输 能够传输的数据的长度有限
    # 网络层     ipv4协议192.168.0.1    ipv6协议 ff2312:f5242:12:1:1:1   网关地址 子网掩码 路由器 三层交换机
    # 数据链路层 mac地址 arp(通过ip地址找mac地址),rarp(通过mac地址找ip地址) 网卡  交换机
    # 物理层


# 1.评论  限制长度   数据库的carchar(255)
# 2.即时聊天的工具   udp

# socket
# socketserver

# 手写socket
# server - tcp
import socket
# sk = socket.socket()
# sk.bind(('127.0.0.1',9000))
# sk.listen()
#
# # while True表示能够和多个client通信
# conn,addr = sk.accept()  # 建立三次握手的过程
# # while True表示能够和一个client说多句话
# conn.recv(1024)
# conn.send(b'xxx')
# conn.close()
# sk.close()  # 四次挥手中的两手

# client -tcp
# import socket
# sk = socket.socket()
# sk.connect(('127.0.0.1',9000))
#
# sk.send(b'hello')
# sk.recv(1024)
# sk.close()   # 四次挥手中的两手

# server -udp
# import socket
# sk = socket.socket(type=socket.SOCK_DGRAM)
# sk.bind(('127.0.0.1',9000))
# while True:
#     msg,cli_addr = sk.recvfrom(1024)
#     sk.sendto(msg,cli_addr)
# sk.close()

# clients -udp
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto(b'msg',('127.0.0.1',9000))
msg,_ = sk.recvfrom(1024)
print(msg)
sk.close()



# by luf



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: