日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python创建简单的客户端和服务器

發布時間:2024/1/1 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 response

UDP客戶端

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 data

TCP服務器

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创建简单的客户端和服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。