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