推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

1.socket编程的概念

   2023-07-31 网络整理佚名2650
核心提示:py文件中),那我们来运行代码看一下效果,首先运行服务器端代码的.需要注意的是我们不能通过TCP的客户端连接UDP服务器,也不能通过UDP的客户端连接TCP的服务器,也就是客户端和服务端的协议必须一样然后依次运行服务器端代码和客户端代码,步骤和TCP中的运行差不多服务器端实例对象创建连接的方法有:9.客户端实例对象创建连接的方法有:10.

1. 编程的概念

# 客户端示例代码
import socket
# socket.AF_INET, socket.SOCK_STREAM默认参数
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_instance.connect(('www.baidu.com', 80))

2.( )类详细解释 3.服务器端如何写

接下来我们来解释一下TCP服务器和TCP客户端的代码示例。 记得看一下代码的注释,这样才能看懂代码:

# TCP服务端代码示例
import socket
from pprint import pprint
# 创建TCP连接
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# bind方法的参数是ip和端口组成的元组表示address
socket_instance.bind(('127.0.0.1', 9000))
# 操作系统可以挂起的最大连接数,如果同一时间的连接数超过5,拒绝其他的连接
socket_instance.listen(5)
# 死循环,循环接收新的客户端连接
while True:
 # 接收客户端的请求,且获取新socket对象和客户端信息
 new_socket, client_addr = socket_instance.accept() # 阻塞,等待握手
 # 循环接收已连接的客户端发送的数据
 while True:
 # 从缓存区中读取1024字节信息 ,使用decode()方法进行解码
 data = new_socket.recv(1024).decode() # 阻塞的
 # 返回客户端的一下信息
 pprint(data)
 # 返回客户端地址 ('127.0.0.1', 51978)
 pprint(client_addr)
 # 把服务器的数据发送回客户端,使用encode()方法把字符串编码成二进制
 new_socket.sendall('服务器端已经拿到你的消息'.encode())
# TCP客户端代码实现
import socket
# 创建TCP连接
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_instance.connect(('127.0.0.1', 9000)) # 进行三次握手
while True:
 cmd = input("请输入您想说的话:")
 socket_instance.send(cmd.encode()) # 把数据发送到服务端
 data = socket_instance.recv(1024) 
 print(data.decode())

因为代码格式可能比较乱,所以放上代码的图片,代码格式参考图中的

TCP代码图片

现在我们已经编写了 TCP 服务器和客户端(在两个不同的 .py 文件中),让我们运行代码看看效果。 首先运行服务端代码的.py文件(鼠标右键->运行test.py),然后运行客户端代码(鼠标右键->运行test1.py),客户端会提示我们输入我们要输入的内容想说的话,如图:

客户打印.jpg

服务器打印.jpg

socket传输文件夹_socket传输文件大小限制_用socket实现文件传输

需要注意的是,我们不能通过TCP客户端连接UDP服务器,也不能通过UDP客户端连接TCP服务器,即客户端和服务器的协议必须相同

4.UDP服务器端和客户端代码实现

# UDP服务器端代码实现
import socket
# 创建UDP连接
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
socket_instance.bind(('127.0.0.1', 9000))
# 循环接收新的客户端连接
while True:
 # 接收客户端的请求,且获取新socket对象和客户端信息
 data, client_addr = socket_instance.recvfrom(1024)
 print(data.decode())
 socket_instance.sendto('Server has receive your data'.encode(), client_addr)
# UDP客户端代码实现
import socket
# 创建socket实例
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
 data = input("请输入您想说的话:")
 socket_instance.sendto(data.encode(), ('127.0.0.1', 9000))
 data, server_addr = socket_instance.recvfrom(1024)
 print(data.decode())

然后依次运行服务器端代码和客户端代码,步骤与TCP类似

UDP 的代码图像

5.UDP服务器实现步骤

1.创建 socket 对象;
2.向socket 对象绑定服务器地址;
3.进入与客户端交互数据的循环阶段;
4.接收客户端发来的数据(包括 bytes 对象 data,以及客户端的 IP 地址和端口号 addr,其中 addr 为二元组 (host, port);
5.打印接收信息,表示从地址为 addr 的客户端接收到数据);
6.关闭;

6.UDP客户端实现步骤

1.创建 socket 对象;
2.初始化 UDP 服务器的地址;
3.进入与服务器交互数据的循环阶段;
4.等待用户输入数据;
5.向服务器端发送接收数据;
6.关闭套接字,不再向服务器发送数据;

7. TCP和UDP有什么区别? 8、与服务器端实例对象创建连接的方法有:

参考:

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON