2009年10月19日月曜日

ソケット通信

socketモジュールを使う

# -*- coding: utf-8 -*-

import socket

def server(host, port):
    s = socket.socket()
    s.bind((host, port))
    s.listen(1)
    conn, addr = s.accept()  # クライアントの接続を待つ
    data = conn.recv(1024)  # クライアントからのデータを受信する
    print "server: receive '%s'" % data
    conn.send(data.upper())  # クライアントにデータを送信する
    conn.close()
    s.close()

def client(host, port):
    s = socket.socket()
    s.connect((host, port))
    s.send("hello")  # サーバにデータを送信する
    data = s.recv(1024)  # サーバからのデータを受信する
    print "client: receive '%s'" % data
    s.close()

# 実行してみる
import threading
class Server(threading.Thread):
    def run(self):
        server("", 50007)
s = Server()
s.start()
client("", 50007)

実行すると
server: receive 'hello'
client: receive 'HELLO'

詳細はドキュメントで

0 件のコメント:

コメントを投稿