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

做进化树的在线网站东莞软文推广

做进化树的在线网站,东莞软文推广,织梦做的网站能做seo吗,上海网站建设 app开发目录 一、V1版 - echo server 二、V2版 - DictServer 三、V3版 - 简单的群聊 一、V1版 - echo server 给服务器发什么消息&#xff0c;服务器将这个消息返回来 作用&#xff1a;创建socket文件 #include <sys/socket.h> int socket(int domain, int type, int protocol);…

目录

一、V1版 - echo server

二、V2版 - DictServer

三、V3版 - 简单的群聊


一、V1版 - echo server

给服务器发什么消息,服务器将这个消息返回来

作用:创建socket文件

#include <sys/socket.h>
int socket(int domain, int type, int protocol);

第一个参数domain

  • AF_UNIX:进行本地间通信
  • AF_INET:进行网络通信

第二个参数type表示套接字类型

  • SOCK_DGRAM:无连接、不可靠,就是UDP协议的套接字

第三个参数protocol一般设置为0

返回值

  • 成功返回一个新的文件描述,失败返回-1并且错误码被设置。

作用:将本地的ip地址、该程序的端口号和创建好的socket文件关联起来

#include <sys/socket.h>
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

返回值:成功返回0,失败返回-1,并且错误码被设置。

网络字节序和主机字节序的转换。

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>int inet_aton(const char *cp, struct in_addr *inp);
in_addr_t inet_addr(const char *cp);
in_addr_t inet_network(const char *cp);
char *inet_ntoa(struct in_addr in);
struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host);
in_addr_t inet_lnaof(struct in_addr in);
in_addr_t inet_netof(struct in_addr in);

in_addr_t inet_addr(const char *cp);这个接口可以将字符串风格的IP地址

  1. 转换成4字节;
  2. 转换成网络序列

从socket文件中读消息

#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void* buf, size_t len, int flags, struct sockaddr* src_addr, socklen_t* addrlen);

第一个参数sockfd,socket文件的文件描述符,表示从那个socket文件中读取;

第二个参数buf,读到那个缓冲区中;

第三个参数len,表示要读取多少字节的内容;

第四个参数flags表示阻塞非阻塞,设置为0表示阻塞读取;

第五个参数src_addr,输出型参数,该信息来自于远端的那个主机

返回值:是实际读到的字节数

向sockrt文件写消息

#include <sys/socket.h>
ssize_t sendto(int sockfd, const void* buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);

同样第一个参数文件描述符、内容、写多长的内容、flags设置为0

#include <unistd.h>
int close(int fd);

cin>>用法一:用于接收一个字符、数

#include <iostream>
using namespace std;
int main ()
{int a,b;cin>>a>>b;cout<<a+b<<endl;return 0;
}

cin>>用法二:用于接收一个字符串,但是遇到“空格”“TAB”“换行”会停止

#include <iostream>
using namespace std;
int main ()
{char a[20];cin>>a;cout<<a<<endl;return 0;
}

cin.getline()接收字符串时,遇到空格也接收

#include <iostream>
using namespace std;
int main ()
{char m[20];cin.getline(m,5);cout<<m<<endl;return 0;
}

只输出了4个字符,原因做后一个字符时’\0’

getline()接收字符串时,遇到空格也接收

#include<iostream>
#include<string>
using namespace std;
int main()
{string str;getline(cin, str);cout << str << endl;return 0;
}

【服务端】

Sever.hpp

SeverMain.cc

【客户端】

SeverMain.cc

注:

建议服务器端绑定IP地址时绑定INADDR_ANY(就是0),因为该服务器上可能存在多个IP地址,如果只绑定了IP1地址,那么只能收到来自IP1地址的信息,绑定INADDR_ANY(就是0)表示信息无论来自IP1还是IP2都能收到。

二、V2版 - DictServer

单词英译汉

【服务端】

Sever.hpp

Dict.hpp

SeverMain.cc

【客户端】

ClientMain.cc

三、V3版 - 简单的群聊

UDP协议的socket是一个全双工通信模式

单工通信:发送端只能发送信息,不能接受信息,接收端只能接收信息,不能发送信息。

半双工通信:可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。

全双工通信:通信的双方可以同时发送和接收数据。

【源代码】

线程池:

客户端:

服务端:

【测试结果】

在系统当中/dev/pts目录下可以查看设备文件

  • 通过向设备文件中写不同的内容来查看那个窗口对应的是哪个设备文件

  • 意思是将标准错误输出到7设备文件对应的窗口中

创建管道文件,将标准错误输出到管道文件中,在另一个窗口中

http://www.dtcms.com/a/549159.html

相关文章:

  • 从零开始的云原生之旅(八):CronJob 实战定时清理任务
  • Python自动化测试 | 快速认识并了解pytest的基本使用
  • 网站备案增加域名天津招聘网人才招聘官网
  • 有什么做外贸的好网站直播网站app下载
  • seo网站改版方案怎么写如何做网站内部优化
  • 找婚庆公司去什么网站亚马逊雨林动物大全
  • 基于百度地铁 API 的长沙地铁站点详情查询与路线导航实践
  • C# 继承
  • Ubuntu 24.04 从源码编译 dcgm-exporter
  • 【软件测试基础】详解数据库核心操作:增删改查,及测试关注点
  • 建网站服务厦门市建设路网站
  • 大模型-多模态机器学习
  • JavaSE基础——第十三章 泛型
  • 从传统到未来:Java在现代开发中的新价值与进化方向
  • 设置linux公钥,私钥登录ssh登录
  • html的网站案例wordpress文章彩色字体
  • set/map刷力扣题/(哈希表+排序类型)仿函数和捕获-两种方法解决
  • 基于单片机与 DeepSeek-OCR 的盲人辅助阅读器设计与实现
  • 淘客网站cms怎么做肥乡专业做网站
  • 【底层机制】Android GC -- 为什么要有GC?GC的核心原理?理解GC的意义
  • 自动驾驶中的传感器技术76——Navigation(13)
  • 鸿蒙Flutter三方库适配指南: 05.使用Windows搭建开发环境
  • 律所网站建设方案书怎么写网站制作排名优化
  • 谷歌网站排名搭建一个平台要多少钱
  • 使用Node.js连接 OPC UA Server
  • h5游戏免费下载:保护堆芯
  • 怎么看网站关键词排名恩施网站制作
  • Jenkins 持续集成与部署
  • 企业查询网站有哪些深圳工业产品设计公司
  • 解析平面卷积/pytorch的nn.Conv2d的计算步骤,in_channels与out_channels如何计算而来