傳送與接收資料
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(
)
socket套接字是全雙工的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
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 實現 不發起三次握手 僅將服...