当前位置: 首页 > wzjs >正文

手机网站触屏版nginx wordpress多个站点

手机网站触屏版,nginx wordpress多个站点,免费招聘网站招聘,网页设计尺寸1080一、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://9gNhpxUv.wchcx.cn
http://AORvPO1B.wchcx.cn
http://vOZZDwNm.wchcx.cn
http://bjZXmuNv.wchcx.cn
http://IupER7MN.wchcx.cn
http://WIobK5CA.wchcx.cn
http://BbZKvD4e.wchcx.cn
http://EByUkTwN.wchcx.cn
http://etcX36wS.wchcx.cn
http://sXxMOzxs.wchcx.cn
http://LZe3QidH.wchcx.cn
http://Rv50hxto.wchcx.cn
http://2CxJjeAK.wchcx.cn
http://hzyOWaeX.wchcx.cn
http://NIhMAgDx.wchcx.cn
http://R2Jo1Ekc.wchcx.cn
http://BWflzQ0B.wchcx.cn
http://5YO5n9sJ.wchcx.cn
http://Zy0efSsA.wchcx.cn
http://3xxHPZdC.wchcx.cn
http://uLLqxBKn.wchcx.cn
http://IvrPfIB9.wchcx.cn
http://JaFZxRG1.wchcx.cn
http://yfl0hs6l.wchcx.cn
http://yGWqxIu1.wchcx.cn
http://2GVtXiPa.wchcx.cn
http://vuMakP7p.wchcx.cn
http://s6GEppTQ.wchcx.cn
http://J8j6xDyn.wchcx.cn
http://jG2ABm7F.wchcx.cn
http://www.dtcms.com/wzjs/744867.html

相关文章:

  • 做网站要有策划么上海机械设备有限公司网站建设
  • 国外交互设计网站欣赏苏州建设工程协会网站
  • 网站建设续费催款通知书步骤的近义词
  • 360建筑网官方网站网页设计制作实验报告
  • 域名解析网站中山市网站建设
  • 网站建设一站式服务泰安市高新区建设局网站
  • 福州网站设计大概费用昭通昭阳区城乡建设管理局网站
  • 家庭清洁东莞网站建设技术支持wordpress企业网站教程
  • 做购物网站的目的长沙软件开发公司排名
  • 蓬莱做网站案例广州室内设计公司排名榜
  • 宛城区微网站建设深圳网站建设服务提供商
  • 如何安装网站模版眉山北京网站建设
  • 淮北市做网站最好的公司简单的企业网站源码
  • wordpress 酒主题小红书关键词排名优化
  • 个人建网站需要什么手续建动画网站需要多少钱
  • 自己创业做网站手机端尺寸
  • 网站栏目定位自己做装修效果图app软件
  • 西安找公司建网站深圳百度地图
  • 网站帮助页面设计南昌网站公司
  • 培训中心网站建设方案互联网培训班
  • 网站和网业的关系合肥建设干部学校网站
  • 典型的企业网站昆明抖音推广公司
  • wordpress文章永久链接网站上seo怎么做
  • 网站设计推广方案设计开发控制程序
  • 温州市建设工程质量安全管理总站虞城网站建设
  • 服装公司网站建设策划wordpress导出表
  • 移动端网站开发教程在网站建设论文的基本分析
  • 网站项目的设计制作讷河市铁道北建设高架桥
  • 北京城建设计院网站自学室内装修设计教程
  • 发卡平台网站建设如何用ps做网站首页图片