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

国外电商网站网页设计要学的课程

国外电商网站,网页设计要学的课程,婚纱网站模板下载,山西山西省建设厅网站在本篇博客中,我们将使用 C 和 Windows Socket(Winsock)API 实现一个简单的 TCP 客户端与服务器之间的通信程序。该程序支持一对一连接,客户端可以向服务器发送消息,服务器接收并回传相同的消息。 TCP(Tra…

在本篇博客中,我们将使用 C++ 和 Windows Socket(Winsock)API 实现一个简单的 TCP 客户端与服务器之间的通信程序。该程序支持一对一连接,客户端可以向服务器发送消息,服务器接收并回传相同的消息。

TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。它广泛用于网络通信中,确保数据能够准确无误地传输。

本文实现了一个 点对点 的 TCP 通信系统,包含两个部分:

  • 服务端(Server):监听指定端口,等待客户端连接,并接收和回传数据。
  • 客户端(Client):连接到服务端,发送数据并接收回传信息。

项目使用的是 Windows 平台下的 Winsock2 API,适用于 Visual Studio 编译环境。


💡 功能说明

  • 支持一对一连接(单线程)
  • 服务端持续监听,客户端可多次发送数据
  • 消息回显功能(Echo Server):服务端将收到的消息原样返回给客户端
  • 输入 exit 可退出客户端程序

🧩 代码实现

🖥️ 服务端代码(TCP_Server.cpp)

// TCP_Server.cpp: 定义 TCP 服务端程序的入口点
//#include <iostream>
#include <WinSock2.h>
#include <windows.h>#pragma comment(lib, "ws2_32.lib")using namespace std;int main()
{// 初始化 Winsock 库WSADATA wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0){cout << "WSAStartup failed!" << endl;return -1;}// 创建监听 socketSOCKET listen_socket = socket(AF_INET, SOCK_STREAM, 0);if (listen_socket == INVALID_SOCKET){cout << "Socket creation failed." << endl;WSACleanup();return -1;}// 配置本地地址信息struct sockaddr_in local = { 0 };local.sin_family = AF_INET;                  // IPv4 地址族local.sin_port = htons(8080);                // 监听端口号local.sin_addr.s_addr = inet_addr("127.0.0.1"); // 本地回环地址// 绑定 socket 到本地地址if (bind(listen_socket, (struct sockaddr*)&local, sizeof(local)) == SOCKET_ERROR){cout << "Bind failed: " << WSAGetLastError() << endl;closesocket(listen_socket);WSACleanup();return -1;}// 开始监听listen(listen_socket, 10);cout << "Server is listening on port 8080..." << endl;while (true){// 接受客户端连接SOCKET client_socket = accept(listen_socket, NULL, NULL);if (client_socket == INVALID_SOCKET){cout << "Accept failed: " << WSAGetLastError() << endl;continue;}cout << "Client connected." << endl;char buffer[1024] = { 0 };while (true){// 接收客户端数据int ret = recv(client_socket, buffer, sizeof(buffer), 0);if (ret <= 0){cout << "Client disconnected." << endl;break;}cout << "Received data: " << buffer << endl;// 将收到的数据原样返回send(client_socket, buffer, strlen(buffer), 0);}// 关闭客户端 socketclosesocket(client_socket);}// 关闭监听 socketclosesocket(listen_socket);// 清理 Winsock 资源WSACleanup();return 0;
}

📱 客户端代码(TCP_Client.cpp)

// TCP_Client.cpp: 定义 TCP 客户端程序的入口点
//#include <iostream>
#include <WinSock2.h>
#include <windows.h>#pragma comment(lib, "ws2_32.lib")using namespace std;int main()
{// 初始化 Winsock 库WSADATA wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0){cout << "WSAStartup failed!" << endl;return -1;}// 创建客户端 socketSOCKET client_socket = socket(AF_INET, SOCK_STREAM, 0);if (client_socket == INVALID_SOCKET){cout << "Socket creation failed." << endl;WSACleanup();return -1;}// 设置服务器地址struct sockaddr_in server_addr;server_addr.sin_family = AF_INET;             // IPv4 地址族server_addr.sin_port = htons(8080);           // 服务器端口号server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 服务器 IP 地址// 连接服务器if (connect(client_socket, (struct sockaddr*)&server_addr, sizeof(server_addr)) == SOCKET_ERROR){cout << "Connect to server failed: " << WSAGetLastError() << endl;closesocket(client_socket);WSACleanup();return -1;}cout << "Connected to server at 127.0.0.1:8080" << endl;char send_buffer[1024] = { 0 };char recv_buffer[1024] = { 0 };while (true){// 输入要发送的消息cout << "Enter message to send (type 'exit' to quit): ";cin.getline(send_buffer, sizeof(send_buffer));// 发送消息到服务器int send_len = send(client_socket, send_buffer, strlen(send_buffer), 0);if (send_len == SOCKET_ERROR){cout << "Send failed: " << WSAGetLastError() << endl;break;}if (strcmp(send_buffer, "exit") == 0){cout << "Exiting..." << endl;break;}// 接收服务器响应int recv_len = recv(client_socket, recv_buffer, sizeof(recv_buffer) - 1, 0);if (recv_len <= 0){cout << "Server disconnected or error occurred." << endl;break;}recv_buffer[recv_len] = '\0'; // 确保字符串结尾cout << "Server response: " << recv_buffer << endl;}// 关闭 socket 并清理 Winsock 资源closesocket(client_socket);WSACleanup();return 0;
}

✅ 运行顺序:

  1. 先启动服务端程序:TCP_Server.exe
  2. 再启动客户端程序:TCP_Client.exe
  3. 在客户端输入任意文本,服务端会回传相同内容
  4. 输入 exit 即可退出客户端

文章转载自:

http://h9mgGuec.LfyzL.cn
http://C6qvBxrn.LfyzL.cn
http://rnwTaaLT.LfyzL.cn
http://tSvtAWOt.LfyzL.cn
http://x1nY9Xul.LfyzL.cn
http://YCke6rYU.LfyzL.cn
http://sHqh1wSV.LfyzL.cn
http://vLIWjJ0G.LfyzL.cn
http://de4ugqim.LfyzL.cn
http://L5qmfhdj.LfyzL.cn
http://X1JUpGiE.LfyzL.cn
http://wLuamKl6.LfyzL.cn
http://RrZ1mLIF.LfyzL.cn
http://MWwklhmM.LfyzL.cn
http://qPCfofEl.LfyzL.cn
http://8QuPNPvt.LfyzL.cn
http://IVRpG1jq.LfyzL.cn
http://JbWW1Nab.LfyzL.cn
http://LS20VXvG.LfyzL.cn
http://NARabH44.LfyzL.cn
http://bSvLsJQw.LfyzL.cn
http://E6N2XTxE.LfyzL.cn
http://QTlYCDuD.LfyzL.cn
http://Fhse54QH.LfyzL.cn
http://jHg6wWmB.LfyzL.cn
http://SWZoQLmV.LfyzL.cn
http://4BnTkswt.LfyzL.cn
http://Ehc2V6bY.LfyzL.cn
http://VJ8i7Sqk.LfyzL.cn
http://68Qrg6n7.LfyzL.cn
http://www.dtcms.com/wzjs/690011.html

相关文章:

  • 四川门户网站建设今天最近的新闻
  • 百度seo整站优化网页打不开但是能上网
  • 先注册域名后建设网站可以吗网站备案网站要有内容吗
  • 长沙公司网站费用永久免费做网站
  • 东莞做网站 信科网络携程电子商务网站建设
  • 网站开发招聘需要重庆自助建网站企企业
  • 网站海外推广怎么做如何做论坛网站 知乎
  • 做3d动画网站wordpress安装时需要填写的使用者
  • 网站建设问题表专题网站建设策划书
  • 做汽车介绍视频的网站高端企业网站建设费用
  • 广州 网站 建设杭州产品设计公司
  • 网站怎么申请重庆巴南网站建设
  • 多站点cms平台网站如何做推广
  • 在哪些网站上申请做广告可以在百度引擎能收到关键字网站建设公司的成本有哪些方面
  • 专业的免费网站建设ie浏览器网址入口
  • 快速建站公司重庆巴南区网站开发
  • 本地南通网站建设企业展示网站 数据库设计
  • 聊城网站推广动态我要在58上面做网站
  • 腾讯有做淘宝客网站吗广州学生做网站
  • 诸暨市住房建设局网站光谷做网站
  • 展览会建设网站平台的作用做网站的网页
  • 电脑外设网站建设论文正常做网站多少钱
  • 重庆建网站wordpress+4.4.1+中文
  • 微信网站模板免费下载iis里如何装php网站
  • 免费网站宣传网站建设公司推荐时代创信
  • 列出网站目录网页设计作业html代码大全
  • 怎么查网站注册信息wordpress修改版权信息
  • 河北住房和城乡建设厅网站首网页策划案的范文
  • 做彩票网站服务器网站 繁体 js
  • 快速网站推广优化广东省自然资源厅事务中心