python實現TCP和UDP伺服器

2021-10-01 23:56:06 字數 2959 閱讀 4752

import socket

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

updsocket.sendto(

"helloworld!"

.encode(

'utf-8'),

("172.20.52.75"

,3333))

updsocket.close(

)

import socket

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

udpsocket.bind(

("172.20.52.75"

,6666))

# ip省略表示是自己的ip 繫結傳送方的埠 內部是乙個元組

udpsocket.sendto(

"hello world!"

.encode(

"utf-8"),

("172.20.52.75"

,4444))

#對方ip和port

data = udpsocket.recvfrom(

1024

)#阻塞

print

(data[0]

.decode(

"gbk"))

#內容print

(data[1]

)#ip和port

udpsocket.close(

)

import socket

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

udpsocket.setsockopt(socket.sol_socket, socket.so_broadcast,

true

)#設定廣播

udpsocket.sendto(

"哈哈 打不過我吧~ 啦啦啦~"

.encode(

"gbk"),

("255.255.255.255"

,7777))

udpsocket.close(

)

import socket

address =

'127.0.0.1'

#監聽哪些網路127.0.0.1是監聽本機 0.0.0.0是監聽整個網路

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

#建立套接字

#tcpsocket.bind(("",12345)) #元組

tcpsocket.connect(

("172.20.52.75"

,7777))

tcpsocket.send(

'約嗎?'

.encode(

"gbk"))

#已經建立了連線 直接傳送

recvdata = tcpsocket.recv(

1024

)print

(recvdata.decode(

"gbk"))

tcpsocket.close(

)

import socket

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

#建立套接字

tcpsocket.bind((""

,8080))

#元組tcpsocket.listen(

128)

#監聽上限 在windows 128有效 在linux無效

newsocket,ipport = tcpsocket.accept(

)#阻塞等待客戶端連線 ipport是個元組只有兩個元素

print

(ipport[0]

)#ip

print

(ipport[1]

)#port

recvdata = newsocket.recv(

1024

)print

(recvdata.decode(

"gbk"))

newsocket.close(

)tcpsocket.close(

)

import socket

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

#建立套接字

tcpsocket.bind((""

,8080))

#元組tcpsocket.listen(

128)

#監聽上限 在windows 128有效 在linux無效

newsocket,ipport = tcpsocket.accept(

)#阻塞等待客戶端連線 ipport是個元組只有兩個元素

print

(ipport[0]

)#ip

print

(ipport[1]

)#port

while

true

: recvdata = newsocket.recv(

1024

)# 當接收到資料為空的時候,表示客戶端已經斷開連線了

if recvdata:

print

(recvdata.decode(

"gbk"))

else

:print

("客戶端斷開連線!"

) newsocket.close(

)break

tcpsocket.close(

)

基於UDP和TCP實現CS

1.我們應該先了解udp和tcp協議 首先udp和tcp是基於傳輸層的協議 我們需要了解udp和tcp的特性 tcp協議的特性 1 面向連線的服務 2 可靠的資料傳輸服務 3 面向位元組流。udp協議的特性 1 無連線服務 2 不可靠的資料傳輸 3 面向資料報 以下是流行網際網路應用層及其應用層協議...

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