python 3 UDPプロトコルを実装するシンプルなサーバとクライアント
1698 ワード
pythonのsocketモジュールでUDPプロトコルを実装し、簡単なサーバとクライアントを書きます.ネットワークプログラミングにおけるUDPの応用を説明するために、ここではグラフィック化を書かずに、2台のパソコンでUDPのクライアントとサービス端末を別々に開くとよい.
UDP:ユーザー・データ・レポート・プロトコルは、接続されていないプロトコル向けです.このプロトコルを使用すると、2つのアプリケーションが先に接続を確立する必要はありません.UDPプロトコルは、エラーリカバリを提供せず、データ再送信を提供できないため、このプロトコルはデータ転送のセキュリティが悪い.
クライアント
python 3はバイナリデータしか送受信できず、明示的なトランスコードが必要です
サーバ
明示的なトランスコードも必要です
本博文の関連内容をさらに交流することを歓迎します:ブログ園の住所:http://www.cnblogs.com/AsuraDong/CSDNアドレス:http://blog.csdn.net/asuradongコミュニケーションのために手紙を送ることもできます[email protected]転載を歓迎しますが、出典を教えてください:)
UDP:ユーザー・データ・レポート・プロトコルは、接続されていないプロトコル向けです.このプロトコルを使用すると、2つのアプリケーションが先に接続を確立する必要はありません.UDPプロトコルは、エラーリカバリを提供せず、データ再送信を提供できないため、このプロトコルはデータ転送のセキュリティが悪い.
クライアント
python 3はバイナリデータしか送受信できず、明示的なトランスコードが必要です
from socket import *
host = '192.168.48.128' # ip
port = 13141 # 10000 ,
bufsize = 1024 #
addr = (host,port) #
udpClient = socket(AF_INET,SOCK_DGRAM) #
while True:
data = input('>>> ')
if not data:
break
data = data.encode(encoding="utf-8")
udpClient.sendto(data,addr) #
data,addr = udpClient.recvfrom(bufsize) #
print(data.decode(encoding="utf-8"),'from',addr)
udpClient.close()
サーバ
明示的なトランスコードも必要です
from socket import *
from time import ctime
host = '' # ip
port = 13141 #
bufsize = 1024
addr = (host,port)
udpServer = socket(AF_INET,SOCK_DGRAM)
udpServer.bind(addr) #
while True:
print('Waiting for connection...')
data,addr = udpServer.recvfrom(bufsize) #
#
data = data.decode(encoding='utf-8').upper()
data = "at %s :%s"%(ctime(),data)
udpServer.sendto(data.encode(encoding='utf-8'),addr)
#
print('...recevied from and return to :',addr)
udpServer.close()
本博文の関連内容をさらに交流することを歓迎します:ブログ園の住所:http://www.cnblogs.com/AsuraDong/CSDNアドレス:http://blog.csdn.net/asuradongコミュニケーションのために手紙を送ることもできます[email protected]転載を歓迎しますが、出典を教えてください:)