Python3 x基礎學習 UDP和TCP用法

2022-09-03 14:15:10 字數 3610 閱讀 2952

傳送資料:

#

1.建立socket(套接字)

#2.使用socket傳送或接收資料

#3.關閉套接字

import

socket

#1.建立socket(套接字)物件

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

#2.使用socket傳送或者接收資料 send to(資料,位址)

data = '你好'

b_data= data.encode('

utf-8

') #

將字串轉化為字串

ip = '

192.168.31.84'#

ip是字串

port= 7777 #

埠號是整數

dest_address = (ip,port) #

位址是元組

udp_socket.sendto(b_data,dest_address)

#3.關閉套接字

udp_socket.close()

接收資料:

import

socket

while

true:

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

#2.使用socket接收資料

#繫結埠號bind(ip,port)s

udp_socket.bind(('

192.168.31.84

', 7777))

#等待接收訊息 recvfrom()

#結果是元組,第乙個元素是訊息內容,第二個元素是位址

recv_info = udp_socket.recvfrom(1024) #

一次接收的最大位元組數

#print(recv_info)

try:

content = recv_info[0].decode('

utf-8')

except

: content = recv_info[0].decode('

gbk'

) address = recv_info[1]

print("

訊息是:%s 頭是%s

"%(content,address))

#3.關閉套接字

udp_socket.close()

練習:做乙個簡易的聊天工具

#

在乙個電腦中編寫1個程式,有2個功能

#1.獲取鍵盤資料,並將其傳送給對方

#2.接收資料並顯示

#並且功能資料進行選擇以上的2個功能呼叫##

簡易版upd聊天器

#******************************

#1. 傳送訊息

#2. 接收訊息

#3. 退出聊天

#******************************

#請輸入您選擇的功能:

#ip = '192.168.31.84'

#port = 1234

import

socket

defsend(udp_socket):

ip = '

192.168.31.84

'port = 1234address =(ip, port)

input_msg1 = input("

請輸入你要傳送的內容:")

input_msg = input_msg1.encode('

utf-8')

print

(udp_socket)

udp_socket.sendto(input_msg,address)

defrecv(udp_socket):

print("

-"*100)

print

(udp_socket)

recv = udp_socket.recvfrom(1024)

text = recv[0].decode('

gbk'

)

print

(text)

defmain():

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

必須把連線物件放最外層

udp_socket.bind(('

192.168.31.84

', 1234))

while

true:

input_type = input("

請輸入要操作的內容 1,伺服器,2,客戶端 3,退出:")

if input_type=='1'

: send(udp_socket)

elif input_type =='2'

: recv(udp_socket)

elif input_type =='3'

:

break

else

:

print("

什麼鬼,不帶這樣子額")

udp_socket.close()

if__name__ == '

__main__':

main()

傳送資料:

import

socket

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

serve_address=('

169.254.34.50

',1081)

tcp_socket.connect(serve_address)

data='

123'

b_data=data.encode('

gbk'

)tcp_socket.send(b_data)

tcp=tcp_socket.recv(1024)

print(tcp.decode('

gbk'

))tcp_socket.close()

接收資料

import socket

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

tcp_socket.bind((

'192.168.31.84

',1080))

tcp_socket.listen(5)

tcp1,tcp2=tcp_socket.accept()

tcp3=tcp2.recv(1024)

print(tcp3.decode('

gbk'

))d_data='

歡迎光臨

'.encode('

gbk'

)tcp_socket.send(d_data)

Python3 x基礎學習 property

1 property 內建裝飾器函式,把乙個方法呼叫方式變成屬性呼叫方式。將乙個方法當成乙個屬性使用 注意 property裝飾器只能在物件導向中使用 2 訪問使用 property 裝飾器裝飾函式可以直接呼叫函式名 會執行一段功能 函式 然後返回值 3.property裝飾器只能修飾不帶引數的方法...

Python3 x基礎學習 裝飾器

1.裝飾器函式的本質 乙個閉包函式 2.裝飾器函式的作用 在不修改原函式及其呼叫方式的情況下對原函功能進行擴充套件 3.語法格式 裝飾器名稱 def foo print foo foo 公司有n個部門,每個部門負責相應的業務 deff1 print 身份驗證 print f1 def f2 prin...

Python3 x基礎學習 os模組學習

使用os 模組對檔案進行一些相關操作 importos 1.重新命名檔案 os.rename 舊檔名,新檔名 os.rename test.txt test3.txt os.rename test4.txt test 2.刪除檔案 os.remove 檔名 os.remove test1.py 3....