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

网站建设的威胁友情链接格式

网站建设的威胁,友情链接格式,政府网站asp源码,网站建设一般需要多少钱在本篇博客中,我们将使用 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://www.dtcms.com/wzjs/359591.html

相关文章:

  • 张掖市建设规划局网站营销咨询公司经营范围
  • wordpress 怎么改中文字体百度seo关键词工具
  • 福州市市政建设开发有限公司网站百度快照推广有效果吗
  • 南京华夏天成建设有限公司网站选择一个产品做营销方案
  • 网站建设关键字小程序推广接单平台
  • 昆明网站设计建设网络营销推广外包平台
  • 有开源项目做的网站站长工具app
  • 办公室装修费用会计分录上海aso苹果关键词优化
  • 深圳微信网站建设报价查网站权重
  • 石首建设局网站营销型网站建设解决方案
  • 公司网站代做合肥seo招聘
  • 做pc端软件可以参考那些网站无锡网站制作推广
  • 吴江手机网站建设价格网络营销的理解
  • 柳州360优化优化网站排名方法
  • 怎么做网页中不显示项目符号seo必备工具
  • 网站原型图设计软件百度联盟是什么
  • 小说网站充值接口怎么做的sem推广托管公司
  • 日本代购网站怎么做的电脑优化大师下载安装
  • 广州做啊里巴巴网站多少钱上海百度推广开户
  • 西安分销商城网站建设阿里巴巴国际站运营
  • 建设公共网站的目的云南网站建设百度
  • 杰奇小说网站建设网站seo优化发布高质量外链
  • wordpress 双语网站网络营销方式与工具有哪些
  • pp下载安装 app优化seo哪家好
  • 做h5场景的网站宁波seo外包推广软件
  • 找做模型方案去哪个网站安仁网络推广
  • 东莞宣传网站成都官网seo厂家
  • 山东德州网站建设哪家便宜seo推广培训课程
  • 做网站能赚到流量费吗网站搭建的流程
  • 网站加载百度地图合肥seo公司