Python套接字Socket程式設計

2021-09-24 23:37:48 字數 2748 閱讀 2350

1. client客戶端

import socket

def main():

# 建立乙個udp套接字

udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)

# 從鍵盤獲取資料

send_data=input("請輸入要傳送的內容:")

# 使用套接字收發資料

udp_socket.sendto(send_data.encode("utf-8"),("127.0.0.1",7788) )

# 關閉套接字

udp_socket.close()

if __name__ == "__main__":

main()

2. server服務端

import socket

def main():

# 1.建立套接字

udp_socket = socket.socket(socket.af_inet, socket.sock_dgram)

# 2.繫結乙個本地資訊(元組),必須繫結自己電腦的ip以及port,其他的不行

localaddr = ("", 7788) # 自己的ip可以使用空字串代替

udp_socket.bind(localaddr)

# 3.接收資料

recv_data = udp_socket.recvfrom(1024)

# recv_data 這個變數中儲存的三乙個元組(接收到的資料,(傳送方的ip,port))

recv_message = recv_data[0] # 資料

send_addr = recv_data[1][0] # 位址

send_port = recv_data[1][1] # 埠

# 4.列印接收資料

# print("%s:%s:%s" % (send_addr, send_port, recv_message.decode("gbk"))) # windows預設編碼gbk,所以使用utf-8解碼會錯誤

print("%s:%s:%s" % (send_addr, send_port, recv_message.decode("utf-8"))) # 使用gbk解碼沒有問題

# 5.關閉套接字

udp_socket.close()

if __name__ == "__main__":

main()

執行:

同時執行客戶端和服務端,通過客戶端向服務端傳送訊息實現通訊

1. client客戶端

import socket

def main():

# c建立套接字

tcp_client_socket = socket.socket(socket.af_inet, socket.sock_stream)

# 連線 connect

server_ip = input("ip:")

server_port = int(input("port"))

server_addr = (server_ip, server_port)

tcp_client_socket.connect(server_addr)

# 傳送資料send

send_data = input("typing something..:")

tcp_client_socket.send(send_data.encode("utf-8"))

# 關閉 close

tcp_client_socket.close()

if __name__ == "__main__":

main()

2. server服務端

import socket

def main():

# 建立

tcp_server_socket = socket.socket(socket.af_inet, socket.sock_stream)

# 繫結

tcp_server_socket.bind(("", 7890))

# 監聽

tcp_server_socket.listen(128)

# 等待

new_client_socket, client_addr = tcp_server_socket.accept()

# 顯示訊息內容

print(client_addr)

recv_data = new_client_socket.recv(1024)

print(recv_data.decode("utf-8"))

# 傳送一條訊息給客戶端

new_client_socket.send("hahahahahahhaha".encode("utf-8"))

# 關閉套接字

tcp_server_socket.close()

new_client_socket.close()

if __name__ == "__main__":

main()

執行:

python網路程式設計 socket套接字

本文目錄 一 socket 二 tcp伺服器 三 tcp客戶端 四 udp伺服器 五 udp客戶端 六 聊天的客戶端 七 聊天的伺服器 學習網路程式設計 其實就是在學socket主要控制傳輸資料的方式 tcp的傳輸方式 優點 通過三次握手來與伺服器建立連線 可以保證資料的完整性 a機器給b機器傳送資...

套接字 Socket 定義

套接字介面可分為三類 公認埠 註冊埠 動態和 或私有埠 套接字,簡單的說就是通訊的兩方的一種約定,用套接字中的相關函式來完成通訊過程 應用層通過傳輸層進行資料通訊時,tcp和udp會遇到同時為多個應用程式程序提供併發服務的問題。多個tcp連線或多個應用程式程序可能需要通過同乙個 tcp協議埠傳輸資料...

socket 套接字通訊

要通過internet進行通訊,至少需要一對套接字,其中乙個執行在客戶端,稱之為clientsocket,另乙個執行於伺服器端面,稱為serversocket。根據連線啟動的方式以及本地要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽 客戶端請求 連線確認。伺服器監聽是指服務端套接字並...