建设部网站监理注销查询/品牌策划是做什么的

建设部网站监理注销查询,品牌策划是做什么的,新手做的网站,做网站优化如何遍文章一、TCP通信流程回顾 1. 服务器端流程 1. 创建Socket → socket() 2. 绑定地址和端口 → bind() 3. 开始监听 → listen() 4. 接受客户端连接 → accept() 5. 接收/发送数据 → recv()/send() 6. 关闭连接 → closesocket()2. 客户端流程 1. 创建Socket → socket() 2. 连接…

一、TCP通信流程回顾

1. 服务器端流程

1. 创建Socket → socket()
2. 绑定地址和端口 → bind()
3. 开始监听 → listen()
4. 接受客户端连接 → accept()
5. 接收/发送数据 → recv()/send()
6. 关闭连接 → closesocket()

2. 客户端流程

1. 创建Socket → socket()
2. 连接服务器 → connect()
3. 发送/接收数据 → send()/recv()
4. 关闭连接 → closesocket()

二、实现TCP服务器(Echo示例)​

1. 完整代码

#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h> 
#pragma comment(lib, "ws2_32.lib")  // 自动链接Winsock库#include <ctype.h>
#include <limits.h>int main() {// 1. 初始化WinsockWSADATA wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {std::cerr << "WSAStartup failed!" << std::endl;return 1;}// 2. 创建SocketSOCKET serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (serverSocket == INVALID_SOCKET) {std::cerr << "Socket creation failed: " << WSAGetLastError() << std::endl;WSACleanup();return 1;}// 3. 绑定地址和端口sockaddr_in serverAddr;serverAddr.sin_family = AF_INET;inet_pton(AF_INET,"127.0.0.1", &(serverAddr.sin_addr.s_addr));  // 本地回环地址serverAddr.sin_port = htons(8080);                    // 监听8080端口if (bind(serverSocket, (sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {std::cerr << "Bind failed: " << WSAGetLastError() << std::endl;closesocket(serverSocket);WSACleanup();return 1;}// 4. 开始监听if (listen(serverSocket, SOMAXCONN) == SOCKET_ERROR) {std::cerr << "Listen failed: " << WSAGetLastError() << std::endl;closesocket(serverSocket);WSACleanup();return 1;}std::cout << "Server started. Listening on 127.0.0.1:8080..." << std::endl;// 5. 接受客户端连接sockaddr_in clientAddr;int clientAddrLen = sizeof(clientAddr);SOCKET clientSocket = accept(serverSocket, (sockaddr*)&clientAddr, &clientAddrLen);if (clientSocket == INVALID_SOCKET) {std::cerr << "Accept failed: " << WSAGetLastError() << std::endl;closesocket(serverSocket);WSACleanup();return 1;}// 6. 接收并回传数据(Echo)char buffer[1024];int bytesReceived;do {bytesReceived = recv(clientSocket, buffer, sizeof(buffer), 0);if (bytesReceived > 0) {send(clientSocket, buffer, bytesReceived, 0);  // 原样返回数据std::cout << "Echoed " << bytesReceived << " bytes. Datas:" << std::string(buffer, bytesReceived) << std::endl;}} while (bytesReceived > 0);// 7. 清理资源closesocket(clientSocket);closesocket(serverSocket);WSACleanup();return 0;
}

三、实现TCP客户端

1. 完整代码

#include <iostream>
#include <string>
#include <winsock2.h>
#include <ws2tcpip.h> 
#pragma comment(lib, "ws2_32.lib")int main() {// 1. 初始化WinsockWSADATA wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {std::cerr << "WSAStartup failed!" << std::endl;return 1;}// 2. 创建SocketSOCKET clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (clientSocket == INVALID_SOCKET) {std::cerr << "Socket creation failed: " << WSAGetLastError() << std::endl;WSACleanup();return 1;}// 3. 连接服务器sockaddr_in serverAddr;serverAddr.sin_family = AF_INET;inet_pton(AF_INET, "127.0.0.1", &(serverAddr.sin_addr.s_addr));serverAddr.sin_port = htons(8080);if (connect(clientSocket, (sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {std::cerr << "Connect failed: " << WSAGetLastError() << std::endl;closesocket(clientSocket);WSACleanup();return 1;}std::cout << "Connected to server. Enter messages to send (type 'exit' to quit):" << std::endl;// 4. 发送和接收数据std::string message;char buffer[1024];do {std::getline(std::cin, message);if (message == "exit") break;// 发送数据send(clientSocket, message.c_str(), message.size(), 0);// 接收回显int bytesReceived = recv(clientSocket, buffer, sizeof(buffer), 0);if (bytesReceived > 0) {std::cout << "Server echoed: " << std::string(buffer, bytesReceived) << std::endl;}} while (true);// 5. 清理资源closesocket(clientSocket);WSACleanup();return 0;
}

四、关键代码解析

1. socket() 参数说明

  • AF_INET:IPv4地址族。
  • SOCK_STREAM:面向流的传输协议(TCP)。
  • IPPROTO_TCP:明确指定TCP协议(可填0自动选择)。

2. bind() 的地址设置

  • INADDR_ANY:若服务器需要监听所有网卡,可改为:
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);  // 监听所有网卡

3. listen() 的待处理队列

  • SOMAXCONN:系统允许的最大挂起连接数(Windows默认为200)。

4. accept() 的阻塞特性

  • 若无客户端连接,accept()会一直阻塞,直到新连接到达。

五、运行与测试

1. 客户端输入/输出

在这里插入图片描述

2. 服务器端输出

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring IoC DI入门

一、Spring&#xff0c;Spring Boot和Spring MVC的联系及区别 Spring是另外两个框架的基础&#xff0c;是Java生态系统的核心框架&#xff0c;而SpringMVC是Spring 的子模块&#xff0c;专注于 Web 层开发&#xff0c;基于 MVC 设计模式&#xff08;模型-视图-控制器&#xff…

【uniapp】记录tabBar不显示踩坑记录

由于很久没有使用uniapp了&#xff0c;官方文档看着又杂乱&#xff0c;底部tab导航栏一直没显示&#xff0c;苦思许久&#xff0c;没有发现原因&#xff0c;最后网上搜到帖子&#xff0c;list里的第一个数据&#xff0c;pages 的第一个 path 必须与 tabBar 的第一个 pagePath 相…

Zabbix安装(保姆级教程)

Zabbix 是一款开源的企业级监控解决方案&#xff0c;能够监控网络的多个参数以及服务器、虚拟机、应用程序、服务、数据库、网站和云的健康状况和完整性。它提供了灵活的通知机制&#xff0c;允许用户为几乎任何事件配置基于电子邮件的告警&#xff0c;从而能够快速响应服务器问…

穿透递归的本质:从无限梦境到可控魔法的蜕变之路

穿透递归的本质&#xff1a;从无限梦境到可控魔法的蜕变之路&#xff08;C实现&#xff09; 一、递归&#xff1a;程序员的盗梦空间 在计算机科学的宇宙中&#xff0c;递归是最接近魔法本质的编程范式。它像一面镜子中的镜子&#xff0c;引导我们通过自我相似性破解复杂问题。…

1.5.4 掌握Scala内建控制结构 - 条件循环

本次实战主要围绕Scala语言中的内建控制结构&#xff0c;特别是条件循环进行学习和实践。通过while循环和do-while循环两种结构&#xff0c;分别实现了计算1到100的累加和以及打印所有水仙花数的任务。在while循环中&#xff0c;首先定义了初始条件和循环条件&#xff0c;然后通…

MySQL程序

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 1. mysqld (MySQL服务器) mysqld也被称为MySQL服务器&#xff0c;是⼀个多线程程序&#xff0c;对数据⽬录进⾏访问管理(包含数据库…

0321美团实习面试——技能大致内容

专业技能 1.掌握盒⼦模型&#xff0c;Flex响应式布局和BFC等问题 盒⼦模型 Flex布局 媒体查询 结合Handleresize.ts监听设备 BFC 2.掌握原型链&#xff0c;异步&#xff0c;事件循环和闭包等问题 原型链 异步 class Promise {static resolve(value) {if (value instanceof…

分布式任务调度

今天我们讲讲分布式定时任务调度—ElasticJob。 一、概述 1、什么是分布式任务调度 我们可以思考⼀下下⾯业务场景的解决⽅案: 某电商平台需要每天上午10点&#xff0c;下午3点&#xff0c;晚上8点发放⼀批优惠券 某银⾏系统需要在信⽤卡到期还款⽇的前三天进⾏短信提醒 某…

STM32-汇编2、外设

1.异常处理 reserved保留 &#xff1b;将所有异常都初始化成一个函数 2.nop 空指令&#xff0c;什么不干&#xf…

汇能感知高品质的多光谱相机VSC02UA

VSC02UA概要 VSC02UA是一款高品质的200万像素的光谱相机&#xff0c;适用于工业检测、农业、医疗等领域。VSC02UA 包含 1600 行1200 列有源像素阵列、片上 10 位 ADC 和图像信号处理器。它带有 USB2.0 接口&#xff0c;配合专门的电脑上位机软件使用&#xff0c;可进行图像采集…

多模态RAG框架(二)OmniSearch (Self-adaptive Planning Agent) and Dynamic VQA Dataset

OmniSearch&#xff1a;Benchmarking Multimodal RAG with Dynamic VQA Dataset and Self-adaptive Planning Agent 文章链接&#xff1a;2411.02937 Github链接&#xff1a;Alibaba-NLP/OmniSearch: Repo for Benchmarking Multimodal Retrieval Augmented Generation with …

Multisim学习-04 示波器的使用

我们选择一个信号源来说明示波器的使用。 模拟电路中平常一般用ac&#xff0c;am&#xff0c;fm&#xff0c;clock就可以演示了。 截图说明&#xff1a; 1&#xff09;波的周期时长&#xff0c;首先应该调整这个参数&#xff0c;它的倒数就是频率。这个参数如果不适合&#xf…

2025年03月16日Github流行趋势

项目名称&#xff1a;glance 项目地址url&#xff1a;https://github.com/glanceapp/glance项目语言&#xff1a;Go历史star数&#xff1a;13768今日star数&#xff1a;889项目维护者&#xff1a;svilenmarkov, c0smicdev, wfg, DVDAndroid, jonasknobloch项目简介&#xff1a;…

aws训练快速入门教程

AWS 相关核心概念 简洁地介绍一下AWS训练云服务的核心关联概念: AWS核心服务层: 基础设施层: EC2(计算), S3(存储), RDS(数据库)等人工智能层: SageMaker(训练平台), AI服务等 机器学习服务分级: 高层: 预构建AI服务(开箱即用)中层: SageMaker(主要训练平台)底层: 框架和基…

HTML图像标签的详细介绍

1. 常用图像格式 格式特点适用场景JPEG有损压缩&#xff0c;文件小&#xff0c;不支持透明适合照片、复杂图像PNG无损压缩&#xff0c;支持透明&#xff08;Alpha通道&#xff09;适合图标、需要透明背景的图片GIF支持动画&#xff0c;最多256色简单动画、低色彩图标WebP谷歌开…

内存高级话题

面试凉经&#xff0c;代码最近写的太少了&#xff0c;被面试官屠杀。 痛定思痛&#xff0c;对C新经典中的内存话题进行复现。 new A 与 new A() 的差别 &#xff08;1&#xff09;如果是一个空类&#xff0c;这两行代码没什么区别。当然现实中也没有程序员会写一个空类。 &am…

2025最全Xshell配置手册:从零开始下载安装搭建远程连接环境

&#x1f308; 软件介绍 Xshell 7 是由韩国 NetSarang 公司开发的一款功能强大的终端模拟器。它专为 Windows 操作系统设计&#xff0c;广泛应用于远程连接管理和服务器管理。 &#x1f4e5; 软件下载与准备 1. 官方下载渠道&#xff08;直接下载&#xff0c;安全无捆绑&…

算法模型从入门到起飞系列——广度优先遍历(BFS)

文章目录 前言一、广度优先遍历&#xff08;BFS&#xff09;简介1.1 广度优先遍历&#xff08;BFS&#xff09;的特点1.2 广度优先遍历&#xff08;BFS&#xff09;的要素 二、广度优先遍历&#xff08;BFS&#xff09;& 深度优先遍历&#xff08;DFS&#xff09;2.1 广度优…

CPP从入门到入土之类和对象Ⅱ

一、六大默认成员函数 默认成员函数是用户没有显式实现&#xff0c;编译器自动生成的成员函数。 一个类&#xff0c;我们在不写的情况下&#xff0c;编译器会默认生成六个默认成员函数 本文详细介绍构造函数和析构函数 二、构造函数 构造函数虽名为构造函数&#xff0c;但是…

【华三】路由器交换机忘记登入密码或super密码的重启操作

【华三】路由器交换机忘记登入密码或super密码的重启操作 背景步骤跳过认证设备&#xff1a;路由器重启设备翻译说明具体操作 跳过当前系统配置重启设备具体操作 背景 当console口的密码忘记&#xff0c;或者说本地用户的密码忘记&#xff0c;其实这时候是登入不了路由器的&am…