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

歡迎訪問 生活随笔!

生活随笔

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

python

python Socket网络编程

發布時間:2023/12/10 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python Socket网络编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡調試助手:https://pan.baidu.com/s/1Do-v8XMDaIYJsXRQok5RhQ?提取碼:ya4g?(便于測試)

?? ? ? ?套接字(Socket)是計算機之間進行通信的一種約定。通過Socket,一臺計算機可以接受其他計算機的數據,也可以向其他計算機發送數據。遠程管理軟件和黑客軟件大多依賴于Socket來實現特定功能的,其包括兩個部分:運行于服務器端稱之為ServerSocket,運行于客戶機端稱之ClientSocket。

TCP

TCP是因特網中的傳輸層協議,使用三次握手協議建立連接

??

TCP_Client.py

import socketdef main():# 創建TCP套接字tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 服務器地址sever_ip = input("請輸入服務器ip:")sever_port = input("請輸入服務器端口:")# 連接服務器(元組)tcp_client_socket.connect((sever_ip,int(sever_port)))# 輸入發送的數據data = input("請輸入要發送的數據:")# 發送數據tcp_client_socket.send(data.encode("utf-8"))#接收數據recv_data = tcp_client_socket.recv(1024)print("對方的回復:"recv_data.decode("utf-8"))if __name__ == '__main__':main()

nc -lvp 8888?監聽8888端口?

(一次完整對話)

?

?TCP_Sever.py?

?

import socketdef main():# 創建套接字tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 綁定本地IP和端口tcp_server_socket.bind(("192.168.12.1",8888))# 被動 listentcp_server_socket.listen(128)while True:# 等待客戶端信息print("等待客戶端連接")client_socket,client_addr = tcp_server_socket.accept()print("客戶端為:",client_addr)#接收對方發送數據recv_data = client_socket.recv(1024)print("接收到信息為:",recv_data.decode("utf-8"))#發送數據到客戶端client_socket.send("Yasso".encode("utf-8"))client_socket.close()if __name__ == "__main__":main()

?

UDP

UDP 為應用程序提供了一種無需建立連接就可以發送封裝的 IP 數據包的方法。

?

UDP_Client_send.py?

import socket #創建udp套接字 udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 目標ip和端口 target_addr = ('192.168.12.128',8888)#獲取數據 data = input("請輸入要發送的數據:")#發送數據 udp_socket.sendto(data.encode('utf-8'),target_addr)udp_socket.close()

UDP_Client_receive.py?

import socket #創建udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)local_addr=('192.168.12.128',8888) #綁定ip(必須本地)和端口 udp_socket.bind(local_addr)#等待接受對方發送的數據 recv_data = udp_socket.recvfrom(1024) #表示本次接受的最大字節數1024# 顯示接受的數據 print(recv_data[0].decode('utf-8')) udp_socket.close()

?liunx等待接受數據->win10發送數據->liunx成功接收數據

nc -ulp 8888?監聽udp模式下的8888端口?

私密聊天室

# UDP應用-私密聊天室(極簡) import socketdef send(chat_ip,chat_port):udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)"""發送消息"""address = (chat_ip,int(chat_port))print(address)data = input("請輸入發送的消息:")udp_socket.sendto(data.encode("utf-8"),address)def receive():"""接收消息"""udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)# 綁定本地IP和端口udp_socket.bind(("192.168.12.1",8888))recv_data = udp_socket.recvfrom(1024)print(recv_data[0].decode('utf-8'))def main():chat_ip = input("請輸入您聊天對方IP地址:")chat_port = input("請輸入您聊天對方端口:")# 循環調用while True:print("++++++歡迎進入私密聊天室++++++")print("0:發送消息")print("1:接收消息")print("2:退出聊天")function = input("請輸入您要用的模塊")if function == "0":send(chat_ip,chat_port)elif function == "1":receive()elif function == "2":breakelse:print("輸入有誤,請重新輸入")if __name__ == '__main__':main()

總結

以上是生活随笔為你收集整理的python Socket网络编程的全部內容,希望文章能夠幫你解決所遇到的問題。

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