クライアントとサーバの手動作成
1496 ワード
毎日いくつかのソースコードの分析を書くのは面白くないと感じて、この一連の文章はみんなを連れてpythonでネットのプログラミングを行って、いくつかのハッカーの常用ツールとスクリプトを編纂して、みんなが好きになることを望みます.まず、手動で作成したtcp_を見てみましょう.client:
ここでtarget_portはターゲットアドレスポート,hostはリクエストアドレス名,socketの属性でリンクし,データ受信データを送信する.
次にtcp_に行きますserverのコード:
ここでもまずsocketオブジェクトを作成しますが、クライアントとサーバの本質はsocket間の通信です.サーバ側はポートを傍受し、受信したデータを処理する関数を書く必要があります.ここでは無線サイクルを利用して絶え間ない処理を行い,送信されたリクエストを最も簡単な処理方式であり,カーネルイベントを利用した高度な処理方式も多く,しばらくは言わないが,これを徹底的に理解し,少しずつ来ている.
# coding=utf8
import socket
target_host = "www.baidu.com"
target_port = 80
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_host, target_port))
client.send("GET / HTTP/1.1\r
host: baidu.com\r
\r
")
response = client.recv(4096)
print(response)
ここでtarget_portはターゲットアドレスポート,hostはリクエストアドレス名,socketの属性でリンクし,データ受信データを送信する.
次にtcp_に行きますserverのコード:
# coding=utf8
import socket
import threading
bind_ip = "127.0.0.1"
bind_port = 9999
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(5)
print "[*] Listening on %s %s" % (bind_ip, bind_port)
def handle_client(client_socket):
request = client_socket.recv(1024)
print "[*] Received: %s" % request
client_socket.send("ACK!")
client_socket.close()
while 1:
client, addr = server.accept()
print "[*] Accepted connection from : %s:%d" % (addr[0], addr[1])
client_handle = threading.Thread(target=handle_client, args=(client,))
client_handle.start()
ここでもまずsocketオブジェクトを作成しますが、クライアントとサーバの本質はsocket間の通信です.サーバ側はポートを傍受し、受信したデータを処理する関数を書く必要があります.ここでは無線サイクルを利用して絶え間ない処理を行い,送信されたリクエストを最も簡単な処理方式であり,カーネルイベントを利用した高度な処理方式も多く,しばらくは言わないが,これを徹底的に理解し,少しずつ来ている.