zoukankan      html  css  js  c++  java
  • 本地套接字-本地socket

    本地套接字简单应用场景 一
    #服务端--简单
    import socket
    import os
    a='sock_file'
    if os.path.exists(a):
        os.remove(a)
    
    s=socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
    s.bind(a)
    s.listen(3)
    while True:
        c,addr = s.accept()
        while True:
            date=c.recv(1024)
            if not date:
                c.close()
                break
            else:
                c.send(date)
    #客户端--简单
    import socket,time
    a='sock_file'
    s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
    s.connect(a)
    while True:
        msg='你好1'.encode()
        s.send(msg)
        date=s.recv(1024)
        print(date.decode())
        time.sleep(2)
     
    本地套接字循环发送信息示例应用场景2
    #服务端
    import socket,time,threading
    import os,select
    a='sock_file'
    if os.path.exists(a):
        os.remove(a)
    
    s=socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
    s.setblocking(False)
    s.bind(a)
    s.listen()
    rlist=[s,]
    wlist=[]
    erlist=[]
    def accept_():
        while True:
            rs,ws,er=select.select(rlist,wlist,erlist)
            print(ws)
            time.sleep(2)
            print(1)
            for i in rs:
                if i is s:
                    con,add=s.accept()
                    rlist.append(con)
    
            for i in erlist:
                print(i)
    
    def send_():
        while True:
            time.sleep(2)
            for i in rlist:
                if i is s:
                    pass
                else:
                    date='你好'.encode()
                    try:
                        i.send(date)
                    except:
                        i.close()
                        rlist.remove(i)
    t1=threading.Thread(target=accept_,)
    t1.start()
    t2=threading.Thread(target=send_,)
    t2.start()
    t1.join()
    t2.join()
    #客户端---
    import socket,time
    a='sock_file'
    s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
    s.connect(a)
    while True:
        # msg='你好2'.encode()
        # s.send(msg)
        date=s.recv(1024)
        print(date.decode())
        # time.sleep(2)


  • 相关阅读:
    java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)
    A计划(三维dfs)
    最少拦截系统(线性dp)
    疯狂的采药(完全背包)
    Modular Inverse (拓展欧几里得求逆元)
    斐波那契数列的3种求法及几种素数筛法
    Magic Odd Square (思维+构造)
    Marlin (思维)
    qdu_组队训练(ABCFIJK)
    2018蓝桥编程题6-9+ 50%的10
  • 原文地址:https://www.cnblogs.com/Skyda/p/9617926.html
Copyright © 2011-2022 走看看