gpt4 book ai didi

基于python中的TCP及UDP(详解)

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于python中的TCP及UDP(详解)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

python中是通过套接字即socket来实现UDP及TCP通信的。有两种套接字面向连接的及无连接的,也就是TCP套接字及UDP套接字.

TCP通信模型 。

基于python中的TCP及UDP(详解)

创建TCP服务器 。

伪代码:

?
1
2
3
4
5
6
7
8
9
ss = socket() # 创建服务器套接字
ss.bind() # 套接字与地址绑定
ss.listen() # 监听连接
inf_loop: # 服务器无限循环
  cs = ss.accept() # 接受客户端连接
  comm_loop: # 通信循环
   cs.recv()/cs.send() # 对话(接收/发送)
  cs.close() # 关闭客户端套接字
ss.close() # 关闭服务器套接字#(可选)

TCP时间戳服务器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import socket
from time import ctime
 
HOST = ''
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
  print("等待连接......")
  tcpCliSock, addr = tcpSerSock.accept()
  print("...接收到连接:", addr)
  while True:
   data = tcpSerSock.recv(BUFSIZE)
   if not data:
    break
   tcpCliSock.send('[%s] %s' % (bytes(ctime(), 'utf-8'), data))
  tcpCliSock.close()
tcpSerSock.close()

创建TCP客户端:

伪代码

?
1
2
3
4
5
cs = socket() # 创建客户端套接字
cs.connect() # 尝试连接服务器
comm_loop: # 通信循环
  cs.send() / cs.recv() # 对话(发送/接收)
cs.close() # 关闭客户端套接字

TCP时间戳客户端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import socket
 
HOST = 'localhost'
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
 
tcpCliSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
  data = input("> ")
  if not data:
   break
  tcpCliSock.send(data)
  data = tcpCliSock.recv(BUFSIZE)
  if not data:
   break
  print(data)
tcpCliSock.close()

UDP通信模型 。

基于python中的TCP及UDP(详解)

创建UDP服务器 。

伪代码:

?
1
2
3
4
5
ss = socket() # 创建服务器套接字
ss.bind() # 绑定服务器套接字
inf_loop: # 服务器无限循环
  cs = ss.recvfrom()/ss.sendto() # 关闭(接收/发送)
ss.close() # 关闭服务器套接字

UDP时间戳服务器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import socket
from time import ctime
 
HOST = ''
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
udpSerSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
  print("等待连接......")
  data, addr = udpSerSock.recvfrom(BUFSIZE)
  udpSerSock.sendto('[%s] %s' % (ctime(), data), addr)
  print("...接收到连接:", addr)
udpSerSock.close()

创建UDP客户端 。

伪代码:

?
1
2
3
4
cs = socket() # 创建客户端套接字
comm_loop: # 通信循环
  cs.sendto() / cs.recvfrom() # 对话(发送/接收)
cs.close() # 关闭客户端套接字

UDP时间戳客户端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import socket
 
HOST = 'localhost'
PORT = 8099
BUFSIZE = 1024
ADDR = (HOST, PORT)
 
udpCliSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udpCliSock.connect(ADDR)
while True:
  data = input("> ")
  if not data:
   break
  udpCliSock.sendto(data, ADDR)
  data, ADDR = udpCliSock.recvfrom(BUFSIZE)
  if not data:
   break
  print(data)
udpCliSock.close()

以上这篇基于python中的TCP及UDP(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:http://www.cnblogs.com/wulaa/p/7787993.html 。

最后此篇关于基于python中的TCP及UDP(详解)的文章就讲到这里了,如果你想了解更多关于基于python中的TCP及UDP(详解)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com