python创建简单的客户端和服务器
生活随笔
收集整理的這篇文章主要介紹了
python创建简单的客户端和服务器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TCP客戶端
import socket target_host="www.baidu.com" target_port=80 client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 建立一個包含AF_INET,SOCK_STREAM參數的socket對象。其中AF_INET說明使用的是標準的IPv4,SOCK_STREAM(面向連接)說明這將是一個TCP客戶端。 client.connect((target_host,target_port)) # 連接客戶端 client.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n") # 發送一些數據 response=client.recv(6049) # 接受一些數據 print responseUDP客戶端
import socket target_host="127.0.0.1" target_port=80 client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 建立一個socket對象,套接字類型改為SOCK_DGRAM(非連接) client.sendto( "AAABBBCCC",(target_host,target_port)) # 調用 sendto()(發送UDP數據)函數將數據發送到想要發送的服務器上,因為UDP是無連接狀態的傳輸協議 data,? addr=client.recvfrom(4096) # 調用recvfrom()(接受UDP數據,與recv()類似,但返回值是(data,address),其中data是包含接受數據的字符串,address是發送數據的套接字地址)接收返回的UDP數據包 print dataTCP服務器
import socket import threading bind_ip="0.0.0.0" bind_port= 9999 server=socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.bind((bind_ip,bind_port)) # 確定服務器需要監聽的IP地址和端口 server.listen(5) # 啟動監聽,并將最大連接數設為5 print "[*] Listening on %s:%d" % (bind_ip,bind_port)def handle_client(client_socket): # 客戶處理線程request=client_socket.recv(1024) # 打印客戶端發送的到的內容print "[*] Received: %s" % requestclient_socket.send("ACK!") # 返還一個數據包client_socket.close() while True: # 讓服務器進入主循環中,在這里等待連接client,addr=server.accept() # 當一個客戶端成功連接時候,接收到的客戶端的套接字對象并保存在變量client中,將遠程連接的細節保存在addr中print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])client_handler=threading.Thread(target=handle_client,args=(client,)) # 以handle_client函數作為回調函數創建一個新的線程對象,將客戶端套接字作為一個句柄傳遞給它。client_handler.start()總結
以上是生活随笔為你收集整理的python创建简单的客户端和服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络专业硕士就业,学神经网络毕业去向
- 下一篇: 视频建站系统Pocle v2.6 简体中