zoukankan      html  css  js  c++  java
  • 基于socket的网络编程

    TCP协议下的socket使用

    服务器端模板
    import socket
    server = socket.socket()
    server.bind(('192.168.12.211',16888))  #插入电话卡
    server.listen()   #开始监听
    while True:
        client,addr = server.accept() #链接循环,可以不断接收新链接
        while True:      
            try:
                data = client.recv(1024)   #循环收发消息
                if not data:     #判断消息是否为空
                    client.close()   
                    break
                print('收到客户端的消息:%s'%data.decode('utf-8'))
                client.send(data)
            except ConnectionResetError:    #接收客户端关闭时的异常
                print('客户端强行关闭链接')
                client.close()
                break
        break
    server.close()
    客户端:
    import socket
    client = socket.socket()
    client.connect(('192.168.12.211',16888))  #链接到服务器
    while True:
        msg = input('>>>>>:').strip()     #循环发送信息
        client.send(msg.encode('utf-8'))    
        data = client.recv(1024)     #接收服务器信息
        print('收到服务器:%s'%data.decode('utf-8'))

    基于UDP协议的 socket通讯

    服务器端
    import socket
    
    # UDP协议 在创建socket是 只有一个类型不同
    server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,proto=0)
    
    server.bind(("127.0.0.1",8888))
    
    
    while True:
        data,addr = server.recvfrom(1024) # 阻塞 直到收到数据为止
        print("收到来自%s的消息:%s" % (data.decode("utf-8"),addr[0]))
        # 返回值为 数据 和 对方ip地址 和端口号
        server.sendto(data.upper(),addr)
    
    
    server.close()
    客户端
    import socket
    
    client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)
    
    
    
    while True:
        data = input(">>:").encode("utf-8")
        client.sendto(data,("127.0.0.1",8888))
        d,addr = client.recvfrom(1024)
        print(d.decode("utf-8"))
    
    client.close()
  • 相关阅读:
    AtCoder Grand Contest 015 题解
    AtCoder Grand Contest 014 题解
    AtCoder Grand Contest 013 题解
    AtCoder Grand Contest 012 题解
    AtCoder Grand Contest 011 题解
    AtCoder Grand Contest 010 题解
    AtCoder Grand Contest 009 题解
    NOIP2017 Day2 题解
    博客园主题备份
    多项式全家桶
  • 原文地址:https://www.cnblogs.com/fanbiyong/p/10174526.html
Copyright © 2011-2022 走看看