udp套接字的使用

2021-10-19 17:34:04 字數 1847 閱讀 9482

傳送與接收資料

import socket

defmain()

:# 建立乙個udp套接字

udp_socket = socket.socketip

# 可以使用套接字收發資料

# upd_socket.sendto("hahahah",對方的ip以及port)

udp_socket.sendto(b"hahaha----------",(

"192.168.164.1"

,8080))

# 關閉套接字

udp_socket.close(

)if __name__ ==

"__main__"

: main(

)

1 建立套接字

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

localaddr = ("",6789)

upd_socket.bind(localaddr)

2 使用套接字收發資料

udp_socket.sendto("***xx",encode("utf-8"),("192.168.33.11",7890))

upd_socket.recvfrom(1024)

3 關閉套接字

udp_socket.close

socket套接字是全雙工的

udp聊天工具

import socket

def send_msg(udp_socket):

"""傳送訊息"""

# 獲取要傳送的內容

dest_ip = input("請輸入對方的ip")

dest_port =int(input("請輸入對方的port"))

send_data = input("請輸入要傳送的訊息:")

udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))

def recv_msg(udp_socket):

"""接收資料"""

# 接收並顯示

recv_data = udp_socket.recvfrom(1024)

print("%s:%s" %(str(recv_data[1]), recv_data[0].decode("utf-8")))

def main():

# 建立套接字

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

# 繫結資訊

udp_socket.bind(("",7788))

# 迴圈迴圈來進行處理事情

while true:

print("------***聊天器------")

print("1:傳送訊息")

print("2:接收訊息")

print("0:退出系統")

op = input("請輸入功能:")

if op == "1":

# 傳送

send_msg(udp_socket)

elif op == "2":

# 接收並顯示

recv_msg(udp_socket)

elif op == "0":

break

else:

print("輸入有誤請重新輸入...")

if __name__ == "__main__":

main()

UDP套接字程式設計

與面向連線的協議相比,面向無連線協議極為不同。其中乙個重要的不同點就是客戶端與伺服器之間不必建立連線。對於udp套接字程式設計而言,伺服器建立套接字後,呼叫bind 函式將套接字與準備接收資料的介面繫結在一起。和tcp程式設計不同的是,應用程式不必呼叫listen 和accept 函式等待客戶端的連...

UDP套接字程式設計

udp是使用者資料報協議,與tcp協議一樣,在網路中處理資料報,是一種無連線的傳輸層協議,具有不可靠性,udp有不提供資料報分組 組裝和不能對資料報進行排序的缺點,也就是說,當報文傳送之後,是無法得知其是否安全完整到達的。基於udp的客戶端伺服器 伺服器 include include includ...

關於udp套接字

setsockopt so reuseaddr 同一終端先後兩次執行udp server,該選項無影響。兩個 或多個 終端同時執行udp server,配置該選項時,僅第乙個終端執行成功 不配置時,所有終端均可成功執行udp server。udp客戶端呼叫connect 實現 不發起三次握手 僅將服...