ソケットtcp


tcpサービス側
サービス側が満たすべき特性1、常に対外的にサービスを提供する2、同時的にサービスを提供する
import socket


phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #             ,        ,     SOCK_STREAM=tcp        


phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #   , bind  

phone.bind(("127.0.0.1",8080)) #   ip port,        

phone.listen(5) #           5
print('starting %s:%s' %("127.0.0.1",8080))


while True:
    conn,client_addr = phone.accept() #           
    print((client_addr))
   
    while True:  #         ,      
        try:
            data = conn.recv(1024) #          
            if len(data) == 0:      #   linux  
                break
            print("        :",data.decode('utf-8'))
            conn.send(data.upper())  #              
        except Exception:
            break


    conn.close() #    ,       ,        ,                    
phone.close() #   

tcpクライアント
import socket


phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # SOCK_STREAM =》 tcp  


phone.connect(("127.0.0.1",8080))


while True:
    msg = input(">>>:").strip()
    phone.send(msg.encode('utf-8'))
    data = phone.recv(1024)
    print("        : ",data.decode('utf-8'))



phone.close()