TCPIP网络编程(尹圣雨)简易版回声客户端

2024-08-20 16:28

本文主要是介绍TCPIP网络编程(尹圣雨)简易版回声客户端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

端口号随便写了一个,写的是 2345。

如果需要按下Q键退出,客户端部分加个判断即可

服务端:

#include <iostream>
#include <WinSock2.h>#pragma comment(lib, "ws2_32.lib")using std::cout;
using std::endl;int main()
{WSADATA wsa;if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0){cout << "WSA Error" << endl;return 0;}sockaddr_in sd;sd.sin_family = AF_INET;sd.sin_port = htons(2345);sd.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");// socketSOCKET fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);if (fd == INVALID_SOCKET){cout << "socket error" << endl;return 0;}// bindif (bind(fd, (sockaddr *)(&sd), sizeof(sd)) == SOCKET_ERROR){cout << "bind error" << endl;return 0;}// listenlisten(fd, 10);sockaddr_in sd2;int sd2Size = sizeof(sd2);// acceptSOCKET clientFd = accept(fd, (sockaddr *)(&sd2), &sd2Size);if (clientFd == INVALID_SOCKET){cout << "客户端 socket error" << endl;}char buf[1024] = "";while (1){if (recv(clientFd, buf, 1024, 0) != 0){cout << "recv " << buf << endl;send(clientFd, buf, 1024, 0);// strcpy(buf, "");}}closesocket(clientFd);closesocket(fd);WSACleanup();return 0;
}

客户端:

#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")using std::cout;
using std::endl;
using std::cin;int main()
{WSADATA wsa;if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0){cout << "WSA Error" << endl;return 0;}// socket SOCKET fd = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);if (fd == INVALID_SOCKET){cout << "socket error" << endl;return 0;}sockaddr_in sd;sd.sin_family = AF_INET;sd.sin_port = htons(2345);sd.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");// connectif (connect(fd, (sockaddr *)(&sd), sizeof(sd)) == SOCKET_ERROR){cout << "connect error" << endl;return 0;}while (1){char buf[1024];cout << "请输入数据:" << endl;cin >> buf;send(fd, buf, 1024, 0);if (recv(fd, buf, 1024, 0) > 0){cout << buf << endl;}}closesocket(fd);WSACleanup();getchar();return 0;
}

这篇关于TCPIP网络编程(尹圣雨)简易版回声客户端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090577

相关文章

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程