ソケットシミュレーションのサービスエリアとクライアント

コードを使用して次のことを実現します。

#

ソケットインポートからサーバー *
スレッドインポートスレッドから

# クライアント情報と接続ステータスを受信
def recv_data(client_socket,client_info): 
    while True: 
        recv_data = client_socket.recv(1024) 
        recv_content = recv_data.decode('gbk') 
        print(f 'クライアントは次のように言っています: {recv_content}, from: {client_info}') 
        if recv_content == 'end': 
            print('End message') 
            Break 

# サーバーはクライアントに情報を送信します
def send_data(): 
    while True: 
        msg = input ('>') 
        client_socket.send(msg.encode('gbk')) 
        if msg == 'end':
            print('メッセージの終わり') 
            Break 


if __name__ == '__main__': 
    # ソケットを作成する
    server_socket =ソケット(AF_INET,SOCK_STREAM) 
    # ローカルIPに変更します。8888が使用されるインターフェースです
    。server_socket.bind(('192.168.10.124',8888)) 
    # パッシブ接続を開始し、
    server_socket.listen ( 5) 
    print('接続を待機中!') 
    while True: 
        client_socket, client_info = server_socket.accept() 
        print("クライアントは接続を正常に確立しました!") 
        t = Thread(target=recv_data, args=(client_socket, client_info) ) 
        #クライアントから情報を処理および受信するスレッドを作成します
        t1 = Thread(target=send_data) 
        #サーバーから情報を送受信するスレッドを作成します
        t.start() 
        #スレッドを開始します
        t1.start()

#
ソケットからのクライアント import *
スレッドインポートからのスレッド

def recv_data(): 
    while True: 
        # サーバー側のデータを受信します
        recv_data = client_socket.recv(1024) 
        recv_content = recv_data.decode('gbk') 
        print(f'サーバーは次のように言いました: {recv_content}') 
        if recv_content == 'end': 
            print('End message') 
            Break 


#サーバーに情報を送信できます
def send_data(): 
    while True: 
        msg =input('>') 
        client_socket.send(msg) .encode ('gbk')) 
        if msg == 'end': 
            print('message end') 
            Break 



if __name__ == '__main__':
    # ソケットを作成する
    client_socket = ソケット(AF_INET,SOCK_STREAM) 
    # ローカルIPに変更します。8888は使用されるインターフェースです
    client_socket.connect(('192.168.10.124',8888)) 
    t1 = Thread(target=recv_data) 
    t2 = Thread(target=send_data ) 
    t1.start() 
    t2.start() 
    t1.join() 
    t2.join() 
    client_socket.close()

おすすめ

転載: blog.csdn.net/NOguang/article/details/131688507
おすすめ