zoukankan      html  css  js  c++  java
  • 网络变编程 Socket

    # ========== ======= socket
    #Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
    #Socket就是一个模块,可以通过调用模块中已实现的方法建立两个进程中的通信和连节。
    # 基于TCP协议的socket
    # tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端# import socket# sk = socket.socket()# sk.bind(("127.0.0.1",8540)) #把地址绑定到套接字
    # 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",8540)) #尝试连接服务器
    # sk.send(b"hello!") #发送信息
    # ret = sk.recv(1024) #对话 (发送/接收)
    # print(ret)
    # sk.close() #关闭客户套接字


    # 加一条socket配置,重用ip和端口
    # import socket
    # from socket import SOL_SOCKET,SO_REUSEADDR
    # sk = socket.socket()
    # sk.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #就是它,在bind前加



    #基于UDP协议的socket
    #udp是无链接的,启动服务之后可以直接接受消息,不需要提前建立链接
    # import socket
    # udp_sk = socket.socket(type=socket.SOCK_DGRAM)# 创建一个服务器的套接字
    # udp_sk.bind(("127.0.0.1",9000)) #绑定服务器套接字
    # msg,addr = udp_sk.recvfrom(1024)
    # print(msg)
    # udp_sk.sendto(b"hi",addr) #对话(接受与发送)
    # udp_sk.close() #关闭服务器套接字

    # #client 端
    # import socket
    # udp_sk = socket.socket(type=socket.SOCK_DGRAM)
    # udp_sk.sendto(b"hello",("127.0.0.1",9000)) #发送信息
    # back_msg,addr = udp_sk.recvfrom(1024) #接受信息
    # print(back_msg.decode("utf-8"),addr)
    #udp_sk.close()

  • 相关阅读:
    Game Engine Architecture 3
    Game Engine Architecture 2
    补码
    工厂模式
    Game Engine Architecture 1
    YDWE Keynote
    3D Math Keynote 4
    3D Math Keynote 3
    3D Math Keynote 2
    OGRE中Any 类型的实现
  • 原文地址:https://www.cnblogs.com/xuerh/p/8610654.html
Copyright © 2011-2022 走看看