UDP聊天器(新手小結)

2021-09-11 18:39:28 字數 1990 閱讀 2425

在了解tcp和udp之前我們應該先了解基本資訊

1.ip

通俗來講埠就好乙個房子的門,是出入這間房子的必經之路。埠是通過埠號來標記的,埠號只有整數,範圍是從0到65535

3.socket

socket(簡稱 套接字) 是程序間通訊的一種方式,它與其他程序間通訊的乙個主要不同是

它能實現不同主機間的程序間通訊,我們網路上各種各樣的服務大多都是基於 socket 來完成通訊的

在 python 中 使用socket 模組的函式 socket 就可以完成:

import socket

socket.socket(address, type)

address :選擇 af_inet

type:sock_stream(用於 tcp 協議)或者 sock_dgram(用於 udp 協議)

1.建立乙個tcp socket(tcp套接字)

import socket

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

s.close()

2.建立乙個udp socket(udp套接字)

import socket

# 建立udp的套接字

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

s.close()

接下來寫乙個udp聊天器粗略版

import socket

def send_msg(udp_socket):

"""獲取鍵盤資料,並將其傳送給對方"""

# 1. 從鍵盤輸入資料

msg = input("\n請輸入要傳送的資料:")

# 2. 輸入對方的ip位址

# 3. 輸入對方的port

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

# 4. 傳送資料

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

def recv_msg(udp_socket):

"""接收資料並顯示"""

# 1. 接收資料

recv_msg = udp_socket.recvfrom(1024)

# 2. 解碼

recv_ip = recv_msg[1]

recv_msg = recv_msg[0].decode("utf-8")

# 3. 顯示接收到的資料

print(">>>%s:%s" % (str(recv_ip), recv_msg))

def main():

# 1. 建立套接字

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

# 2. 繫結本地資訊

udp_socket.bind(("", 7890))

while true:

# 3. 選擇功能

print("="*30)

print("1:傳送訊息")

print("2:接收訊息")

print("="*30)

op_num = input("請輸入要操作的功能序號:")

# 4. 根據選擇呼叫相應的函式

if op_num == "1":`在這裡插入**片`

send_msg(udp_socket)

elif op_num == "2":

recv_msg(udp_socket)

else:

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

if __name__ == "__main__":

main()`在這裡插入**片`

UDP聊天器專案

由於udp通訊不是面向連線的,且雙方都可以利用套接字進行收發資訊 import socket def send msg udp socket dest ip input 請輸入你的ip dest port int input 請輸入你的埠 send data input 請輸入要傳送的資訊 將資訊傳...

應用 udp聊天器

網路通訊過程 網路通訊過程中,之所需要ip port等,就是為了能夠將乙個複雜的通訊過程進行任務劃分,從而保證資料準確無誤的傳遞 在乙個電腦中編寫1個程式,有2個功能 1.獲取鍵盤資料,並將其傳送給對方 2.接收資料並顯示 並且功能資料進行選擇以上的2個功能呼叫 要求實現上述程式 參考 import...

應用 udp聊天器

說明 在乙個電腦中編寫1個程式,有2個功能 1.獲取鍵盤資料,並將其傳送給對方 2.接收資料並顯示 並且功能資料進行選擇以上的2個功能呼叫 要求實現上述程式 參考 import socket def send msg udp socket 獲取鍵盤資料,並將其傳送給對方 1.從鍵盤輸入資料 msg ...