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 '))