Estudio Notas (31): 21 días aclaramiento Python (Video Lección solamente) - Uso de comunicación zócalo y añadir multithreading

Aprender de inmediato: https://edu.csdn.net/course/play/24797/282211?utm_source=blogtoedu

servidor:

socket importación, roscado 
de fecha y hora de importación, OS 

CLIENT_LIST = [] 
st = socket.socket (socket.AF_INET, socket.SOCK_STREAM, 0) 
st.bind (( '192.168.0.118', 8888)) 
st.listen () 


def server_target ( server_socket, addr): 
    while True: 
        CVAL = server_socket.recv (2048) .decode ( 'UTF-8') 
        si CVAL no es Ninguno: 
            print ( '客户端:', addr [0], '内容:', CVAL) 
            para CL en CLIENT_LIST: 
                cl.send (( '主机回复:% s' % CVAL) .encode ( 'utf-8')) 
            con ( 'txtinfo.txt' abierta, 'ab', True) como f:  
                f.writelines ((str (datetime.datetime.today ()). encode ( 'UTF-8'),
                              ( '-客户端地址:' + addr [0] + '-发送内容:' + CVAL) .encode ( 'UTF-8'), 
                              (( '- Anfitrión de respuesta:% s' % CVAL) + os.linesep ) .encode ( 'UTF-8'.))) 
al mismo tiempo verdadera: 
    dirección de cliente de socket y # representa la comunicación 
    Vala, dir = st.accept () 
    # sockt almacenada correspondiente a la lista 
    client_list.append (Vala) 
    Imprimir (direc ) 
    con Open ( 'txtinfo.txt', 'ab &', True) como F: 
        f.write ((STR (datetime.datetime.today ()) + '- dirección del cliente:' + str (addr [0 ]) os.linesep +) .encode ( 'UTF. 8')) 
        # correspondiente al cliente para iniciar los hilos sockt 
    threading.Thread (target = server_target, args = (vala, addr)). start ()

 

 

cliente:
 

'' ' 
Creado por hilo threading.Thread 

' '' 
toma de importación, que rosca 

# cliente sencillo 
# ST = socket.socket (socket.AF_INET, socket.SOCK_STREAM, 0) 
# # llamar al servidor de conexión 
# st.connect (( '192.168.0.118', 8888)) 
# # después de la conexión con éxito, una vez establecido, el servidor de conexión del cliente tiene éxito virtual de enlace 
# impresión (st.recv (2048) .decode ( 'UTF-8.')) 

ST = socket.socket ( socket.AF_INET, socket.SOCK_STREAM, 0) 
st.connect (( '192.168.0.118', 8888)) 


# lectura 
DEF get_server (client_socket): 
    el while True: 
        getser = client_socket.recv (2048) .decode ( 'UTF 8 ') 
        # Si los datos devueltos no está vacío 
        SI getser Ninguno no es: 
            Imprimir (getser) 
        la cosa:
            descanso


. De la threading.Thread (target = get_server, args = (ST,)) Start () 
# Enviar 
la while True: 
    InP = INPUT () 
    # de entrada está vacía o si el bucle de salida se sale 
    si inp no es ninguno o inp == ' salida' : 
        ROTURA 
    datos # de transmisión 
    st.send (inp.encode ( 'UTF-8 '))
Publicado 39 artículos originales · ganado elogios 29 · vistas 896

Supongo que te gusta

Origin blog.csdn.net/happyk213/article/details/105267690
Recomendado
Clasificación