zoukankan      html  css  js  c++  java
  • 网络

    一、TCPIP协议

      1.TCPIP协议分层

        (1)四层(七层):链路层(物理层、数据链路层)、网络层(网络层)、传输层(传输层)、应用层(会话层、表示层、应用层)

    二、socket

    #创建tcp  socket
    
    import socket
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    sendData = 'hahaha'; s.sendto(b
    'hahaha', ('192.168.1.1', 8080))          (python3中)
    s.sendto(sendData.encode('utf-8'), ('192.168.1.1', 8080))  (python3中)
    #创建udp socket import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

      1.udp绑定信息

    from socket import *
    
    #1. 创建套接字
    udpSocket = socket(AF_INET, SOCK_DGRAM)
    
    #2. 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分配
    bindAddr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
    udpSocket.bind(bindAddr)
    
    #3. 等待接收对方发送的数据
    recvData = udpSocket.recvfrom(1024) # 1024表示本次接收的最大字节数
    
    #4. 显示接收到的数据
    print recvData
    
    #5. 关闭套接字
    udpSocket.close()
    udp绑定信息

       2.udp广播

    from socket import *
    import sys
    
    dest = ("<broadcast>", 7788)
    
    udp = socket("AF_INET", "SOCK_DGRAM")
    
    udp.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
    
    s.sendto("haha", dest)
    udp广播

    三、tcp

      1.服务器端

    from socket import *
    
    tcpSocket = socket(AF_INET, SOCK_STREAM)
    
    tcpSocket.bind(("", 8899))
    
    tcpSocket.listen(5)
    
    #newSocket表示新的客户端,clientAddr表示新的客户端的ip、端口
    newSocket, clientAddr = tcpSocket.accept()
    
    recvData = newSocket.recv(1024)
    
    print("%s:%s"%(str(clientAddr), recvData))
    
    newSocket.close()
    tcpSocket.close()

       2.客户端

    from socket import *
    
    tcpSocket = socket("AF_INET", SOCK_STREAM)
    
    addr = ("192.168.1.1", 7878)
    
    # 连接服务器
    tcpSocket.connect(addr)
    
    sendData = input("请输入要发送的数据:")
    
    # 发送数据
    tcpSocket.send(sendData)
    
    # 接收服务器发送的数据
    recvData = tcpSocket.recv(1024)
    
    tcpSocket.close()
  • 相关阅读:
    155. 最小栈
    160. 相交链表
    PAT 1057 Stack
    PAT 1026 Table Tennis
    PAT 1017 Queueing at Bank
    PAT 1014 Waiting in Line
    PAT 1029 Median
    PAT 1016 Phone Bills
    PAT 1010 Radix
    PAT 1122 Hamiltonian Cycle
  • 原文地址:https://www.cnblogs.com/peilanluo/p/8414583.html
Copyright © 2011-2022 走看看