この記事では主にPythonネットワークプログラミングにおけるTCPソケットの簡単な使い方を紹介しますので、必要な方は参考にしてください
この記事ではPythonネットワークプログラミングにおけるTCPソケットの簡単な使い方について説明します。参考までに、詳細は以下の通りです:
私はこれまでPythonを学んだことがなかったので、Javaについては少ししか知りません、そしてCを書くのは面倒です。 , そのため、TCP ソケット プログラミングを実際に実装したことはありません。
私は最近 Python を学びました。それを使用してソケットを記述するのは非常に便利で簡単なので、もちろん試してみる必要があります。
以下は、コードに基づいた最も単純な tcp プログラムの紹介です。クライアントはデータを入力してサーバーに送信し、サーバーは時間を追加してクライアントに返します
#!/usr/bin/python 'test TCP server' from socket import * #套接字所需要的模块 from time import ctime #时间模块 HOST = '' #主机名,为空,表示可以绑定在任何有效的地址上。 PORT = 21567 #随机选的可用端口 BUFSIZ = 1024 #发送数据的缓冲区 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) #第一个参数是socket_family,此处用常用的AF_INET,第二个参数是流套接字,即创建的是tcp tcpSerSock.bind(ADDR) #套接字与地址绑定 tcpSerSock.listen(5) #开始监听,参数表示允许的最大连接数 while True: print 'waiting for connection...' tcpCliSock, addr = tcpSerSock.accept() #打开大门等待客人,accept返回一个元组(connection,address)。第一个元素是新的socket对象,服务器必须通过它与客户通信;第二个是客户的地址。 print '...connected from:',addr while True: data = tcpCliSock.recv(BUFSIZ) #洗耳恭听,把客人的话记录到data中 if not data: #客人话说完了,送客 break tcpCliSock.send('[%s] %s' %(ctime(), data)) #发送当前时间,以及数据给客人 tcpCliSock.close() #送客,关闭与该客人通信的套接字 tcpSerSock.close() #因为上面是死循环,此处不是必须的,只是提醒大家离开的时候务必要关门!
2 つのソケットがあります。上記で使用した場合、最初の tcpSerSock はウェルカム ソケットと呼ばれ、2 番目の tcpCliSock はクライアントとの通信を実際に担当するソケットです。この利点は、サーバーが同時に複数のゲストを受信できることです。
以下は非常にシンプルなクライアントコードです:
#!/usr/bin/python 'test tcp client' from socket import * HOST = 'localhost' #因为我是在同一台机器上运行,所以是localhost,不同主机的话,此处需要改成服务器地址 PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) #客户端只需要一个套接字 tcpCliSock.connect(ADDR) #发起连接 while True: data = raw_input('>') tcpCliSock.send(data) #发送数据 if not data: break data = tcpCliSock.recv(BUFSIZ) #接收数据 print data tcpCliSock.close()
関連する推奨事項:
Pythonネットワークプログラミングで関数のまとめが到着しました
以上がPython ネットワーク プログラミングでの TCP ソケットの簡単な使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。