server:
import socket as s import threading as t bind_ip = "0.0.0.0" bind_port = 80
#配置服務器監聽的IP地址和端口號,這里為缺省配置,默認接收來自所有的ip發送到80端口的信息
server = s.socket(s.AF_INET,s.SOCK_STREAM)
#確定套接字的連接類型和連接依據的類型
server.bind((bind_ip,bind_port)) #確定服務的監聽的端口和ip並開始啟動監聽
server.listen(5)
#配置服務的最大連接數量
print ("[*]Listening on %s:%d" % (bind_ip,bind_port))
#該函數為處理客戶端的線程
def handle_client(client_socket):
request = client_socket.recv(1024)
#將recv()函數之后的信息發送到客戶端
print "[*]Receoved:%s"% request
client_socket.send("ACK+1")
#返還ACK+1的內容到client
client_socket.close()
while True: client , addr = server.accept()
#將接收到的客戶端套接字對象保存到client變量里,將遠程的細節保存到addr中
print ("[*] Accepted connection from:%s:%d" % (addr[0],addr[1])) client_handler = t.Thread(target=handle_client,args = (client,))
#以client_handle函數為回調函數創建一個新的線程對象,將客戶端套接字作為一個句柄傳遞給它
client_handler.start
#啟動client_handler
client:
import socket as s target_host = "192.168.66.6" target_port = 80
client = s.socket(s.AF_INET,s.SOCK_STREAM) #建立一個socket對象
client.connect((target_host,target_port)) #連接server
client.send("Bydream") #發送一些數據(Bydream)
response = client.recv(80)
#接收一些數據
server和client的測試驗證