Python教程 UDP和TCP用法

2021-10-09 22:11:16 字數 3872 閱讀 4147

udp:

傳送資料:

# 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 =

1234

address =

(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(

)

tcp

傳送資料:

'''

'''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)

Python中TCP和UDP用法

socket 簡稱 套接字 是程序間通訊的一種方式,它與其他程序間通訊的乙個主要不同是 它能實現不同主機間的程序間通訊,socket屬於全雙工。關於建立套接字的引數說明 socket.socket addressfamily,type address family 可以選擇 af inet 用於 i...

python網路程式設計 udp和tcp

udp伺服器import socket s socket.socket socket.af inet,socket.sock dgram s.bind 192.168.1.103 8888 while true data,addr s.recvfrom 1024 print s s str addr...

python 之TCP和UDP程式設計簡單示例

tcp程式設計是建立可靠連線,雙方是以流的形式傳送資料的。在建立套接字時可以定義該套接字的型別,即定義socket物件時socket af inet,sock stream 設定第二個引數為sock stream,則表示使用tcp協議。伺服器 如下 from socket import srv so...