ホームページ >バックエンド開発 >Python チュートリアル >Python がクライアント側とサーバー側のデータ送信を実装する方法 (コード)
この記事の内容は、Python によるクライアント側とサーバー側のデータ転送の実装方法に関するものであり、一定の参考価値があります。必要な友人は参考にしていただければ幸いです。
def sock_client_data(): while True: try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.20.1', 6666)) #服务器和客户端在不同的系统或不同的主机下时使用的ip和端口,首先要查看服务器所在的系统网卡的ip # s.connect(('127.0.0.1', 6666)) #服务器和客户端都在一个系统下时使用的ip和端口 except socket.error as msg: print(msg) print(sys.exit(1)) data = input("input data:") #输入要传输的数据 s.send(data.encode()) #将要传输的数据编码发送,如果是字符数据就必须要编码发送 s.close() if __name__ == '__main__': sock_client_data()
def socket_service_data(): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(('127.0.0.1', 6666)) # 在同一台主机的ip下使用测试ip进行通信 # s.bind(('192.168.20.1', 6666)) #在不同主机或者同一主机的不同系统下使用实际ip s.listen(10) except socket.error as msg: print(msg) sys.exit(1) print("Wait for Connection..................") while True: sock, addr = s.accept() buf = sock.recv(1024) #接收数据 buf = buf.decode() #解码 print("The data from " + str(addr[0]) + " is " + str(buf)) print("Successfully") # return buf # sock.close() if __name__ == '__main__': socket_service_data()
サーバー側:
#手順:
1. サーバーとクライアント Duantong は 127.0 を使用します。物理ホストの同じシステム内では、ポートは占有されていない限り、自動的に設定されます。Linux システムでは、コマンド sudo netstat -nap | grep 6666 でポートが占有されているかどうかを確認します。見つかりません。ポートを証明してください。占有されていません。 2 つの .py ファイルを作成します。1 つはクライアント プログラムを保存する sender.py、もう 1 つはサーバー プログラムを保存するrecieve.py です。最初にサーバー プログラムを実行し、次に接続が成功した後にクライアント プログラムを実行します。送信したいデータを入力し、サーバー端末に送信されたデータが表示されれば送信成功です。2. サーバーとクライアントが同じ物理ホスト上の異なるシステムにある場合は、サーバー システムの実際の IP アドレスを使用します。著者は Windows をクライアントとして使用し、Linux をサーバーとして使用します。Linux ターミナルで ifconfig と入力して、 IP アドレスを表示します。 2 プログラムは同じ IP とポートを使用し、2 つのプログラムをそれぞれのシステムに展開します。最初にサーバー側プログラムを実行し、次にクライアント側プログラムを実行し、データを送信し、サーバーが接続されるまで待ちます。 -側データは正常に受信されました。
関連する推奨事項:
以上がPython がクライアント側とサーバー側のデータ送信を実装する方法 (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。