网络编程day2作业

1.tcp实现通信

服务器:

//tcp服务端#include <head.h>#define SERPORT 8888
#define IP "192.168.125.6"int main(int argc, const char *argv[])
{ //1.创建套接字int sfd=socket(AF_INET,SOCK_STREAM,0);//2.绑定struct sockaddr_in ser;ser.sin_family=AF_INET;ser.sin_port=htons(SERPORT);ser.sin_addr.s_addr=inet_addr(IP);bind(sfd,(struct sockaddr*)&ser,sizeof(ser));printf("服务器已上线!\n");//3.监听listen(sfd,128);printf("开始监听客户端连接情况>>>>>\n");//4.接收客户端地址消息结构体struct sockaddr_in cli;socklen_t socklen=sizeof(cli);int newfd=accept(sfd,(struct sockaddr*)&cli,&socklen);printf("客户:[%s: %d]连接成功\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port));//5.收发数据char buf[128]="";while(1){bzero(buf,sizeof(buf));recv(newfd,buf,sizeof(buf),0);printf("[%s: %d]:%s\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port),buf);if(strcmp(buf,"quit")==0){printf("客户[%s: %d]已下线!\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port));break;}}//6.关闭套接字close(newfd);close(sfd);return 0;
}

客户端:

//tcp客户端#include <head.h>#define PORT 8888
#define IP "192.168.125.6"int main(int argc, const char *argv[])
{ //1.创建套接字int cfd=socket(AF_INET,SOCK_STREAM,0);//2.连接服务端struct sockaddr_in ser;ser.sin_family=AF_INET;ser.sin_port=htons(PORT);ser.sin_addr.s_addr=inet_addr(IP);connect(cfd,(struct sockaddr*)&ser,sizeof(ser));printf("已连接服务器!\n");//3.收发数据char buf[128]="";while(1){bzero(buf,sizeof(buf));printf("请输入内容:");fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1]='\0';send(cfd,buf,sizeof(buf),0);if(strcmp(buf,"quit")==0)break;}//4.关闭套接字close(cfd);return 0;
}

效果:

2.udp实现通信

服务器:

//udp服务器#include <head.h>#define PORT 9999
#define IP "192.168.125.6"int main(int argc, const char *argv[])
{ //1.创建套接字int sfd=socket(AF_INET,SOCK_DGRAM,0);//2.绑定服务器struct sockaddr_in ser;ser.sin_family=AF_INET;ser.sin_port=htons(PORT);ser.sin_addr.s_addr=inet_addr(IP);bind(sfd,(struct sockaddr*)&ser,sizeof(ser));printf("服务器已上线! 等待连接中>>>>>\n");//3.收发数据char buf[128]="";struct sockaddr_in cli;socklen_t socklen=sizeof(cli);while(1){bzero(buf,sizeof(buf));recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr*)&cli,&socklen);printf("客户[%s: %d]:%s\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port),buf);if(strcmp(buf,"quit")==0){printf("客户[%s: %d]已下线!\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port));break;}}//4.关闭套接字close(sfd);return 0;
}

客户端:

//udp客户端#include <head.h>#define PORT 9999
#define IP "192.168.125.6"int main(int argc, const char *argv[])
{ //1.创建套接字int cfd=socket(AF_INET,SOCK_DGRAM,0);//2.收发数据char buf[128]="";struct sockaddr_in ser;ser.sin_family=AF_INET;ser.sin_port=htons(PORT);ser.sin_addr.s_addr=inet_addr(IP);while(1){bzero(buf,sizeof(buf));fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1]='\0';sendto(cfd,buf,sizeof(buf),0,(struct sockaddr*)&ser,sizeof(ser));if(strcmp(buf,"quit")==0)break;}//3.关闭套接字close(cfd);return 0;
}

效果:

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

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

相关文章

喜报丨迪捷软件入选2023年浙江省信息技术应用创新典型案例

12月6日&#xff0c;浙江省经信厅公示了2023年浙江省信息技术应用创新典型案例入围名单。本次案例征集活动&#xff0c;由浙江省经信厅、省密码管理局、工业和信息化部网络安全产业发展中心联合组织开展&#xff0c;共遴选出24个优秀典型解决方案&#xff0c;迪捷软件“基于全数…

LeetCode刷题--- 找出所有子集的异或总和再求和

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述递归递归、搜…

互联网加竞赛 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于python 机器视觉 的车牌识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 &#x1f9ff; 更多资…

猫头虎博主揭秘:令人叹为观止的编程语言与代码技巧 ‍

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

python如何发送企业微信群消息

一、创建机器人&#xff0c;并获取webhook 1.1 进入企业微信中&#xff0c;添加群机器人&#xff0c;添加完成后可以获取到一个webhook的地址 1.2 群机器人企业微信接口的调用可以参考这个文件 https://developer.work.weixin.qq.com/document/path/99110#%E5%A6%82%E4%BD%…

C语言:求和1+1/2-1/3+1/4-1/5+……-1/99+1/100

#include<stdio.h> int main() {int i 0;double sum 0.0;int flag 1;for (i 1;i < 100;i){sum 1.0 / i * flag;flag -flag;}printf("sum%lf\n", sum);return 0; }

Centos7 配置Git

随笔记录 目录 1&#xff0c; 新建用户 2. 给用户设置密码相关操作 3. 为新用户添加sudo 权限 4. 配置Git 4.1 配置Git 4.2 查看id_ras.pub 5, 登录Git 配置SSH 秘钥 6. Centos7 登录Git 7. clone 指定branch到本地 8. 将新代码复制到指定路径 9. 上传指定代码 …

堆与二叉树(上)

本篇主要讲的是一些概念&#xff0c;推论和堆的实现&#xff08;核心在堆的实现这一块&#xff09; 涉及到的一些结论&#xff0c;证明放到最后&#xff0c;可以选择跳过&#xff0c;知识点过多&#xff0c;当复习一用差不多&#xff0c;如果是刚学这一块的&#xff0c;建议打…

微信小程序---自定义组件

目录 1.局部引用组件 2.全局引用组件 3.组件和页面的区别 4.自定义组件样式 5.properties属性 6.data和properties的区别 7.数据监听器 8.纯数据字段 9.自定义组件-组件的生命周期 lifetimes节点 10.组件所在的页面的生命周期 pageLifetimes节点 11.插槽 &#x…

安全算法(二):共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换

安全算法&#xff08;二&#xff09;&#xff1a;共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换 本章介绍了共享密钥加密、公开密钥加密&#xff0c;和两种加密方法混合使用的混合加密方法&#xff1b;最后介绍了迪菲-赫尔曼密钥交换。 加密数据的方法可以分为…

Transformer的学习

文章目录 Transformer1.了解Seq2Seq任务2.Transformer 整体架构3.Encoder的运作方式4.Decoder的运作方式5.AT 与 NAT6.Encoder 和 Decoder 之间的互动7.Training Transformer 1.了解Seq2Seq任务 NLP 的问题&#xff0c;都可以看做是 QA&#xff08;Question Answering&#x…

RFID工业识别系统的优势和价值

RFID是物联网感知层最重要的组成部分之一&#xff0c;它可以通过感知物品来实现智能化识别和管理&#xff0c;实现不同设备之间的互联。本文将深入探讨RFID工业识别系统的优势和价值&#xff0c;并探讨其实际应用的案例情况。 RFID工业识别系统的优势和价值 RFID作为物联网感知…

程序人生15年人生感悟

计算机程序员并不是一件什么高大上的职业。而仅仅是一份普通的工作。就像医生能治病救人&#xff0c;我们能治蓝屏救程序&#xff0c;我们都在为这个世界默默的做出自己的贡献。刻意或无意宣扬某个职业高大上&#xff0c;其实质是对其它行业从业者的不公平。但是有些人却常常这…

[计网02] 数据链路层 笔记 总结 详解

目录 数据链路层概述 主要功能 封装成帧 透明传输 差错检测 冗余码 差错控制 检错编码 纠错编码 奇偶效验法 CRC循环冗余码 静态分配信道 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 随机访问介质的访问控制 ALOHA CSMA CSMA/CD CSMA/…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程&#xff0c;希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

Temu、Shein、OZON测评自养号,IP和指纹浏览器的优缺点分析

随着全球电子商务的飞速发展&#xff0c;跨境电商环境展现出巨大的潜力和机遇。然而&#xff0c;跨境卖家们也面临着更激烈的竞争、更严格的规定和更高的运营成本等挑战。为了在这个环境中脱颖而出&#xff0c;一些卖家尝试使用自动脚本程序进行浏览和下单。然而&#xff0c;这…

JAVA基于物联网技术的智慧校园电子班牌原生微信小程序源码

智慧校园特色应用模块&#xff1a; 通知管理、视频管理、考勤管理、评价管理、图片管理、请假管理、家长留言、值日管理、成绩管理、离校管理、考场管理。 一、智慧校园是什么&#xff1f;如何定义&#xff1f; 智慧校园的定义&#xff1a;是指以物联网为核心的智慧化的校园学习…

【C 剑指offer】有序整型矩阵元素查找 {杨氏矩阵}

目录 题目内容&#xff1a; 思路&#xff1a; 图形演示&#xff1a; 复杂度分析 C源码&#xff1a; /** *************************************************************************** ******************** ********************* ******…

使用Log4j与log4j2配置mybatisplus打印sql日志

环境&#xff1a;项目非完全spring项目&#xff0c;没有spring的配置文件。执行sql时老是不打印sql语句。因此进行修改&#xff0c;过程比较坎坷&#xff0c;记录一下。 我尝试使用log4j和log4j2进行配置 最终把这两种全部配置记录上 Log4j配置 如果项目用的是log4j需要进行配置…

超详细 | 哈里斯鹰优化算法原理、实现及其改进与利用(Matlab/Python)

测试函数为F9 在MATLAB中执行程序结果如下&#xff1a; 在Python中执行程序结果如下&#xff1a; 哈里斯鹰优化算法(Harris Hawks Optimization , HHO)是 Heidari等[1]于2019年提出的一种新型元启发式算法&#xff0c;设计灵感来源于哈里斯鹰在捕食猎物过程中的合作行为以及突…