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()
  • 相关阅读:
    float转varchar
    我的优化经验:内链是SEO的基础
    转:2008年微软Windows硬件工程(WinHEC)大会
    sql语句去掉前面的0(前导零,零前缀)
    去掉ID重复的数据
    蛙蛙推荐:蛙蛙牌firefox插件
    每日阅读20081127
    网赚经验之谈:成为高手之路
    (chinaz)巧妙选购付费链接
    把某个表的数据导出成insert语句(数据导出 insert语句)
  • 原文地址:https://www.cnblogs.com/fanbiyong/p/10174526.html
Copyright © 2011-2022 走看看