6.小结
1.网络应用程序之间的通信流程
2.TCP 的概念
3.TCP 的特点
4.总结
TCP 是一个稳定、可靠的传输协议,常用于对数据进行准确无误的传输,比如: 文件下载,浏览器上网。
1.问题思考
2.socket 的概念
3.socket 的作用
负责进程之间的网络数据传输,好比数据的搬运工。
4.socket 使用场景
5.小结
进程之间网络数据的传输可以通过 socket 来完成, socket 就是进程间网络数据通信的工具。
1.TCP 网络应用程序开发流程的介绍
2.TCP 客户端程序开发流程的介绍
3. TCP 服务端程序开发流程的介绍
4.小结
1.开发 TCP 客户端程序开发步骤回顾
2.socket 类的介绍
3.TCP 客户端程序开发示例代码
import socket
if name == ‘main’:
创建tcp客户端套接字
1. AF_INET:表示ipv4
2. SOCK_STREAM: tcp传输协议
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
和服务端应用程序建立连接
tcp_client_socket.connect((“192.168.131.62”, 8080))
代码执行到此,说明连接建立成功
准备发送的数据
send_data = “你好服务端,我是客户端小黑!”.encode(“gbk”)
发送数据
tcp_client_socket.send(send_data)
接收数据, 这次接收的数据最大字节数是1024
recv_data = tcp_client_socket.recv(1024)
返回的直接是服务端程序发送的二进制数据
print(recv_data)
对数据进行解码
recv_content = recv_data.decode(“gbk”)
print(“接收服务端的数据为:”, recv_content)
关闭套接字
tcp_client_socket.close()
网络调试助手充当服务端程序:
4.小结
1.开发 TCP 服务端程序开发步骤回顾
2.socket 类的介绍
3.TCP 服务端程序开发示例代码
import socket
if name == ‘main’:
创建tcp服务端套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
设置端口号复用,让程序退出端口号立即释放
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
给程序绑定端口号
tcp_server_socket.bind((“”, 8989))
设置监听
128:最大等待建立连接的个数, 提示: 目前是单任务的服务端,同一时刻只能服务与一个客户端,后续使用多任务能够让服务端同时服务与多个客户端,
不需要让客户端进行等待建立连接
listen后的这个套接字只负责接收客户端连接请求,不能收发消息,收发消息使用返回的这个新套接字来完成
tcp_server_socket.listen(128)
等待客户端建立连接的请求, 只有客户端和服务端建立连接成功代码才会解阻塞,代码才能继续往下执行
1. 专门和客户端通信的套接字: service_client_socket
2. 客户端的ip地址和端口号: ip_port
service_client_socket, ip_port = tcp_server_socket.accept()
代码执行到此说明连接建立成功
print(“客户端的ip地址和端口号:”, ip_port)
接收客户端发送的数据, 这次接收数据的最大字节数是1024
recv_data = service_client_socket.recv(1024)
获取数据的长度
recv_data_length = len(recv_data)
print(“接收数据的长度为:”, recv_data_length)
对二进制数据进行解码
recv_content = recv_data.decode(“gbk”)
print(“接收客户端的数据为:”, recv_content)
准备发送的数据
send_data = “ok, 问题正在处理中…”.encode(“gbk”)
发送数据给客户端
service_client_socket.send(send_data)
关闭服务与客户端的套接字, 终止和客户端通信的服务
service_client_socket.close()
关闭服务端的套接字, 终止和客户端提供建立连接请求的服务
tcp_server_socket.close()
4.小结
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
ert/6c361282296f86381401c05e862fe4e9.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-9tsGidKJ-1711699592969)]