Pythonでネットプログラミングを書く

2118 ワード

ソケットとは
ネットワーク上の2つのプログラムは、双方向の通信接続によってデータの交換を実現し、この接続の一端を1つのsocketと呼ぶ.いわゆるsocketは、IPアドレスとポートを記述するための「ソケットワード」とも呼ばれ、通信チェーンのハンドルである.アプリケーションは通常、「ソケット」を介してネットワークに要求または応答するネットワーク要求socketをUinxに起源するが、Unix/Linuxの基本哲学の一つは「すべてファイル」であり、「open->読み書きwrite/read->closeを閉じる」モードで操作することができ、socketはこのモードの実装であり、socketは特殊なファイルである.いくつかのsocket関数は、Socketの英語の元の意味が「穴」または「コンセント」である(IOの読み取り/書き込み、開く、閉じる)操作です.BSD UNIXのプロセス通信メカニズムとして,次の意味をとる.通常は「ソケット」とも呼ばれ、IPアドレスとポートを記述するために使用され、異なる仮想マシンまたは異なるコンピュータ間の通信を実現するために使用できる通信チェーンのハンドルである.インターネット上のホストでは、一般的に複数のサービスソフトウェアが実行され、いくつかのサービスが提供されています.各サービスはSocketを開き、異なるポートが異なるサービスに対応するポートにバインドされます.Socketは英語の原義のように多孔質コンセントのようです.1台のホストは各種のコンセントがいっぱいある部屋のようで、各コンセントには番号があり、あるコンセントは220ボルトの交流を提供し、あるコンセントは110ボルトの交流を提供し、あるコンセントはケーブルテレビ番組を提供している.お客様のソフトウェアは、異なる番号のコンセントにプラグを差し込むと、異なるサービスを受けることができます.
例えば、中国のモバイルカスタマーサービスはモバイルにとって、ずっと1つの番号10086を傍受して、電話が入ってきたら、1つのカスタマーサービスと顧客を割り当ててコミュニケーションして要求を処理します.ユーザーにとって、10086という番号を知っていて、電話をかける必要があります.
 
# _*_ coding:utf-8 _*_
"""
file:1.py
date:2018-07-25 4:54 PM
author: FATRAT 
desc:
"""
import socket

# 1.  socket  
sk = socket.socket()
# 2.     ip
ip_port = ('127.0.0.1', 9998)
sk.bind(ip_port)
# 3.     
sk.listen(5)

while True:
    #       ip    
    conn, address = sk.accept()
    # conn = result[0]
    # address = result[1]
    # print result
    # print type(result)
    conn.send('hello')
    flag = True
    while flag:
        data = conn.recv(1024)
        print data
        if data == 'exit':
            flag = False
        conn.send('sb')
    conn.close()

 
client
# _*_ coding:utf-8 _*_
"""
file: client.py
date: 2018-07-25 4:35 PM
author: westos-dd
desc:
    

"""
import socket

#     socket  
client = socket.socket()

#     
ip_port = ('127.0.0.1',9998)
client.connect(ip_port)

while True:
    #     
    data = client.recv(1024)
    print data
    #     
    inp = raw_input('clent:')
    client.send(inp)
    if inp == 'exit':
        break