IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP网络应用流程开发 -> 正文阅读

[网络协议]TCP网络应用流程开发

????????目录:

一、TCP服务端开发

二、TCP客户端开发


一、TCP服务端开发

1、开发流程

  1. 导入 socket 模块

  2. 创建TCP套接字 socket

    • 参数1:'AF_INET',表示IPV4地址类型

    • 参数2:'SOCK_STREAM',表示TCP传输协议类型

  3. 绑定端口号 bind

    • 参数:元组,比如:(ip地址, 端口号)

  4. 设置监听 listen

    • 参数:最大等待建立连接的个数

  5. 等待客户端的连接请求

  6. 发送数据 send

    • 参数:要发送的二进制数据,注意:字符串需要使用encode()方法进行编码

  7. 接收数据 recv

    • 参数:表示每次接收数据大小,单位是字节,注意:解码成字符串使用decode()方法

  8. 关闭套接字 socket 表示通信完成

2、TCP服务端程序开发示例

import socket

# 创建服务端监听套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 监听套接字绑定地址和端口
server.bind(('127.0.0.1', 8080))

# 监听套接字开始监听,准备接收客户端的连接请求
server.listen(128)
print('服务器开始监听...')

# 接收客户端的连接请求
# service_client:专门和客户端通信的套接字
# ip_port:客户端的 IP 地址和端口号
service_client, ip_port = server.accept()
print(f'服务器接收到来自{ip_port}的请求')

# 接收客户端发送的消息,最多接收 1024 给字节
recv_msg = service_client.recv(1024) # 接收的消息为 bytes 类型
print('客户端发送的消息为:', recv_msg.decode())

# 给客户端发送响应消息
send_msg = input('请输入响应的消息:')
service_client.send(send_msg.encode())

# 关闭和客户端通信的套接字
service_client.close()
# 关闭服务器监听套接字
server.close()

二、TCP客户端开发

1、开发流程

  1. 导入 socket 模块

  2. 创建TCP套接字 socket

    • 参数1:'AF_INET',表示IPv4地址类型

    • 参数2:'SOCK_STREAM',表示TCP传输协议

  3. 发送数据 send

    • 参数1:要发送的二进制数据,注意:字符串需要使用encode()方法进行编码

  4. 接收数据 recv

    • 参数1:表示每次接收数据的大小,单位是字节

  5. 关闭套接字 socket 表示通信完成

2、TCP 客户端程序开发示例

import socket

# 创建客户端 socket 套接字对象
# socket.AF_INET:表示 IPV4
# socket.SOCK_STRAM:表示 TCP 传输协议
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 客户端请求和服务端程序建立连接
client.connect(('127.0.0.1', 8080))
print('客户端连接服务器成功!')

# 客户端向服务器发生消息
send_msg = input('请输入发送的消息:')
client.send(send_msg.encode()) # 注意:send 函数参数需要为 bytes 类型

# 客户端接收服务器响应的消息,最多接收 1024 个字节
recv_msg = client.recv(1024) # 接收的消息为 bytes 类型
print('服务器响应的消息为:', recv_msg.decode())

# 关闭客户端套接字
client.close()
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:13:42  更:2021-08-27 12:13:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:48:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码