网络编程

 网络开发的架构:

  • C/s   client/server

  • B/s    client/server

  • B/s架构更好

认识网络

  • 网卡 -- mac地址

  • 每台机器在网络中除了有一个mac地址生效,还有一个ip地址

  • 有交换机和路由器

  • 端口:通过某一个固定的端口定位到机器上的某一个应用

  • 每一台机器有很多个端口,最大的端口是65535  范围是0--65535

交换机的工作方式:

  • 单播广播组播

  • arp协议:通过ip找mac

  • 交换机 --->广播  将要找的机器的信息发给局域网内的所有机器

  • 交换机 ---->单播  返回要找的那台机器

  • 交换机的工作机制: 只认识mac地址,广播单播组播

ip协议:

  • ipv4:  4位点分十进制
  • ipv6: 6位点分十六进制

路由器的工作机制:

  • 路由表,认识ip地址

传递信息的方式:

  • Tcp协议: 可靠的面向连接的慢
  • UDP协议: 不可靠的无连接的快

TCP与UDP的区别

osi七层模型

 TCP/IP五层协议

套接字(socket)初使用

  • 基于TCP协议的socket

    • server端

      •   
        复制代码
        import socket
        sk = socket.socket()
        sk.bind(('127.0.0.1',8898))  #把地址绑定到套接字
        sk.listen()          #监听链接
        conn,addr = sk.accept() #接受客户端链接
        ret = conn.recv(1024)  #接收客户端信息
        print(ret)       #打印客户端信息
        conn.send(b'hi')        #向客户端发送信息
        conn.close()       #关闭客户端套接字
        sk.close()        #关闭服务器套接字(可选)
        复制代码
    • client端 

      • 复制代码
        import socket
        sk = socket.socket()           # 创建客户套接字
        sk.connect(('127.0.0.1',8898))    # 尝试连接服务器
        sk.send(b'hello!')
        ret = sk.recv(1024)         # 对话(发送/接收)
        print(ret)
        sk.close()            # 关闭客户套接字





原文地址:https://www.cnblogs.com/hard-up/p/10092268.html