python socketクライアントとサーバ側の会話を実現
4622 ワード
最近python言語を強固にして、本当のことを言って、こんなに多くのスクリプト言語を使って、やはりこの比較的に面白くて、迅速で、簡潔で、上手になりやすいのは言うまでもありません.
socketソケットは、TCP/IP、ICMP/IP、UDP/IPなどの特定のネットワークプロトコルのスイートペア上のネットワークアプリケーションプロバイダに現在の移植可能な基準を提供するオブジェクトである.socketは、データの送信と受信を許可します.ネットワーク通信の各エンドポイントにソケットオブジェクトがあることを前提とした通信チャネルを確立します.
python socketこれがpythonのモジュールです.このモジュールをどのように使うかについては、以下のURLを見ることができます.中のpython資料はすべてそろっています.http://docs.python.org/2/library/socket.html(英語ですが、大体見て、実例を見ればわかりますので、簡単です)
下记のコードはまだ完璧ではありませんて、どの达人が通りかかったので、多く指导して、上のコード......
1サーバ側
2クライアント
3テスト!!!
サーバ側の実行:
クライアント実行:
4サーバ側とクライアント側の会話テスト:
私のレベルが限られているため、コードは完璧ではありません.今度はQQインタフェースのような通信ソフトを書く時間があります.
socketソケットは、TCP/IP、ICMP/IP、UDP/IPなどの特定のネットワークプロトコルのスイートペア上のネットワークアプリケーションプロバイダに現在の移植可能な基準を提供するオブジェクトである.socketは、データの送信と受信を許可します.ネットワーク通信の各エンドポイントにソケットオブジェクトがあることを前提とした通信チャネルを確立します.
python socketこれがpythonのモジュールです.このモジュールをどのように使うかについては、以下のURLを見ることができます.中のpython資料はすべてそろっています.http://docs.python.org/2/library/socket.html(英語ですが、大体見て、実例を見ればわかりますので、簡単です)
下记のコードはまだ完璧ではありませんて、どの达人が通りかかったので、多く指导して、上のコード......
1サーバ側
[root@localhost ~]# cat server.py
#coding:utf8
import time
import sys
import socket
import select
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('127.0.0.1',8989))# IP
server.listen(10) #
input = [server,sys.stdin]#sys.stdin ,
print ' , ! ......'
client,address = server.accept()# IP
print " :",address
input.append(client)# imput
Ture = 1#
while Ture:
print" , >>>>>:"
input_data,out_data,except_data = select.select(input,[],[])# select
for receive_data in input_data:# ,
if receive_data == sys.stdin: # ,
data = raw_input()
if data == '^c':
running = 0
client.send(data) #
client.close()
break
client.send(" : %s:
%s"%(time.ctime(),data))
else:# socket
data = receive_data.recv(1024)
print "",data
server.close()
2クライアント
[root@localhost ~]# cat clien.py
#coding:utf8
import time
import sys
import select
import socket
address = ('127.0.0.1',8989)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(address)
input = [client,sys.stdin]
Ture = 1
while Ture:
print ' , >>>>>:'
input_data,oupt_data,except_data = select.select(input,[],[])
for receive_data in input_data:
if receive_data == client:
data = client.recv(1024)
if data == '^c':
running = 0
print 'server exist'
receive_data.close()
print 'client is over'
break
print "",data
else:
client_data = raw_input()
client.send(" : %s:
%s"%(time.ctime(),client_data))
client.close()
3テスト!!!
サーバ側の実行:
[root@localhost ~]# python server.py
, ! ......
クライアント実行:
[root@localhost ~]# python clien.py
, >>>>>:
4サーバ側とクライアント側の会話テスト:
:
[root@localhost ~]# python clien.py
, >>>>>:
socket , ?
, >>>>>:
:
[root@localhost ~]# python server.py
, ! ......
: ('127.0.0.1', 33371)
, >>>>>:
: Wed Jul 24 09:13:48 2013:
socket , ?
, >>>>>:
:
[root@localhost ~]# python server.py
, ! ......
: ('127.0.0.1', 33371)
, >>>>>:
: Wed Jul 24 09:13:48 2013:
socket , ?
, >>>>>:
, , , ?
, >>>>>:
:
[root@localhost ~]# python clien.py
, >>>>>:
socket , ?
, >>>>>:
: Wed Jul 24 09:21:15 2013:
, , , ?
, >>>>>:
私のレベルが限られているため、コードは完璧ではありません.今度はQQインタフェースのような通信ソフトを書く時間があります.