Linux c++开发-11-Socket TCP编程简单案例

服务端:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <netinet/in.h>
#include <sys/types.h>#include <errno.h>int main(void)
{//1.socketint server_sock = socket(AF_INET, SOCK_STREAM, 0);// addressstruct sockaddr_in server_addr;server_addr.sin_addr.s_addr = INADDR_ANY;server_addr.sin_port = htons(9001);server_addr.sin_family = AF_INET; //2.bindif ( (bind(server_sock, (struct sockaddr*) &server_addr, sizeof(server_addr))) != 0 ){fprintf(stderr, "couldn't bind: %s\n", strerror(errno));exit(EXIT_FAILURE);}//3.listenif ((listen(server_sock, 10)) != 0){fprintf(stderr, "couldn't listen: %s\n", strerror(errno));exit(EXIT_FAILURE);}int client_sock;//4.acceptif( (client_sock = accept(server_sock, NULL, NULL)) == -1 ){fprintf(stderr, "couldn't accept: %s\n", strerror(errno));exit(EXIT_FAILURE);}char send_message[255] = "hello i am server";send(client_sock, send_message, sizeof(send_message), 0);char buf[256];recv(client_sock,buf,sizeof(buf),0);printf("Server recv:%s\n",buf);close(server_sock);close(client_sock);return 0;
}

客户端:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>#include <netinet/in.h>#include <errno.h>int main(void){//1.create sockint sock = socket(AF_INET, SOCK_STREAM, 0);if(sock < 0){fprintf(stderr, "can't create socket because of %s\n", strerror(errno));exit(EXIT_FAILURE);}//create addressstruct sockaddr_in server_addr;server_addr.sin_addr.s_addr = INADDR_ANY;server_addr.sin_port = htons(9001);server_addr.sin_family = AF_INET;//connectif( (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr))) == -1  ){perror("connect error because of: ");close(sock);exit(EXIT_FAILURE);}//create recv buffer and recvchar recv_buffer[255];recv(sock, recv_buffer, sizeof(recv_buffer), 0);//printprintf("printf recv: %s\n", recv_buffer);char send_message[255] = "I Love China!";send(sock, send_message, sizeof(send_message), 0);close(sock);return 0;
}

结果:
在这里插入图片描述

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

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

相关文章

传统行业与人工智能融合:材料、化学、物理、生物的发展与未来展望

导言 传统行业如材料科学、化学、物理、生物学一直是科学领域的重要支柱。随着人工智能的快速发展&#xff0c;这些领域也在不断融合创新。本文将深入研究这些领域与人工智能的发展过程、遇到的问题及解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。 …

【uniapp】uniapp中本地存储sqlite数据库保姆级使用教程(附完整代码和注释)

数据库请求接口封装 uniapp中提供了plus.sqlite接口&#xff0c;在这里我们对常用的数据库请求操作进行了二次封装 这里的dbName、dbPath、recordsTable 可以根据你的需求自己命名 module.exports {/** * type {String} 数据库名称*/dbName: salary,/*** 数据库地址* type {…

【【迭代七次的CORDIC算法-Verilog实现】】

迭代七次的CORDIC算法-Verilog实现求解正弦余弦函数 COEDIC.v module CORDIC #(parameter DATA_WIDTH 4d8 , // we set data widthparameter PIPELINE 4d8)(input clk ,input …

深入理解 Nginx 工作原理:Master-Worker 架构与性能优化

目录 前言1 Nginx 的 Master-Worker 架构2 Worker 进程的工作原理3 Master-Worker 架构的优势3.1 热部署的便利性3.2 进程间独立性3.3 系统稳定性和容错性提升3.4 系统风险降低 4 Worker 数量的设置5 Worker 连接数&#xff08;worker_connections&#xff09;结语 前言 Nginx…

nodejs微信小程序+python+PHP购物商城网站-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Ubuntu 常用命令之 tar 命令用法介绍

tar 命令在 Ubuntu 系统中是用来打包和解包文件的工具。tar 命令可以将多个文件或目录打包成一个 tar 文件&#xff0c;也可以将 tar 文件解包成原来的文件或目录。 tar 命令的常用参数如下 c&#xff1a;创建一个新的 tar 文件。x&#xff1a;从 tar 文件中提取文件。v&…

198|鸭的喜剧,也是蝌蚪的悲剧

​ 第一次读鲁迅的《鸭的喜剧》&#xff0c;平平淡淡的文字&#xff0c;没有一丝辛辣&#xff0c;讲了一个给小朋友的故事。如果不知道&#xff0c;都不会觉得这是鲁迅的作品。 故事很简单&#xff1a;友人先是买了蝌蚪&#xff0c;想等蝌蚪长大听蛙鸣&#xff1b;后来买了四只…

机器学习之逻辑回归,一文掌握逻辑回归算法知识文集

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

H5聊天系统聊天网站源码 群聊源码 无限建群创群

H5聊天系统聊天网站源码 群聊源码 无限建群创群 1.支持自助建群 管理群 修改群资料 2.支持自动登录 登陆成功可自助修改资料 3.后台可查看群组聊天消息记录 4.支持表情 动态表情 图片发布 5.支持消息语音提醒 测试环境&#xff1a;NginxMySQL5.6PHP5.6 1.将压缩包解压到…

VueCron使用方法

1&#xff09;什么是vueCron Vue Cron 是基于 Vue.js 的定时任务管理组件&#xff0c;它提供了一种简单易用的方式来设定和管理定时任务。Vue Cron 提供了一个类似于 Linux crontab 的界面&#xff0c;用户可以通过它来创建、编辑和删除定时任务。 2&#xff09;安装依赖及应…

数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势

近日&#xff0c;由中国网络安全产业联盟&#xff08;CCIA&#xff09;主办、CCI数据安全工作委员会中国电子技术标准化研究院等单位承办的“2023年网络安全优秀创新成果大赛”获奖名单公布。天空卫士数据安全扫描仪&#xff08;DSS&#xff09;产品获得创新成果大赛优胜奖。 本…

Kubernetes 容器编排(6)

企业级镜像仓库Harbor 上传harbor安装包并安装 $ tar xf harbor-offline-installer-v2.5.3.tgz $ cp harbor.yml.tmpl harbor.yml $ vim harbor.yml hostname: 192.168.246.217# http related config http:# port for http, default is 80. If https enabled, this port will…

人工智能的发展之路:时间节点、问题与解决办法的全景解析

导言 人工智能的发展历程充满了里程碑式的事件&#xff0c;从早期的概念到今天的广泛应用&#xff0c;每个时间节点都伴随着独特的挑战和创新。本文将详细描述每个关键时间节点的事件&#xff0c;探讨存在的问题、解决办法&#xff0c;以及不同阶段之间的联系。 1. 195…

Selenium库编写爬虫详细案例

一、引言 Selenium作为一个强大的自动化测试工具&#xff0c;其在网络爬虫领域也展现出了许多技术优势。首先&#xff0c;Selenium可以模拟浏览器行为&#xff0c;包括点击、填写表单、下拉等操作&#xff0c;使得它能够处理一些其他爬虫工具无法应对的情况&#xff0c;比如需…

华为配置IPv4静态路由与静态BFD联动示例

组网需求 如图1所示&#xff0c;SwitchA通过SwitchB和NMS跨网段相连。在SwitchA上通过静态路由与NMS进行正常通信。在SwitchA和SwitchB之间实现毫秒级故障感知&#xff0c;提高收敛速度 配置思路 采用如下思路配置IPv4静态路由与静态BFD联动&#xff1a; 在SwitchA和SwitchB上…

基于ssm在线交友系统论文

基于VUEssm框架的在线交友系统 摘要 本文介绍了在线交友系统的开发全过程。通过分析企业对于在线交友系统的需求&#xff0c;创建了一个计算机管理在线交友系统的方案。文章介绍了在线交友系统的系统分析部分&#xff0c;包括可行性分析等&#xff0c;系统设计部分主要介绍了系…

使用VSC从零开始Vue.js——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务3:数据可视化

使用Visual Studio Code&#xff08;VSC&#xff09;进行Vue开发非常方便&#xff0c;下面是一些基本步骤&#xff1a; 一、下载和安装Vue 官网下载地址Download | Node.js Vue.js是基于Node.js的&#xff0c;所以首先需要安装Node.js&#xff0c;官网下载地址&#xff1a;No…

基于Java+Springboot+Vue+elememt宠物用品商城系统设计实现

基于JavaSpringbootVueelememt宠物用品商城系统设计实现 &#x1f345; 作者主页 程序开发 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; 文章目录 基于JavaSpringbootVueelememt宠物用品商城系统设计实…

基于SSM+Vue的新闻管理系统

基于SSMVue的新闻管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 新闻列表 管理员界面 用户界面 摘要 新闻管理系统基于SSM&#xff08;Spr…

界面控件DevExpress v23.2全新发布 - 官宣正式支持.NET 8

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布&#xff0c;该版本拥有众多…