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

网站设计公司哪个好在线做c语言题目的网站

网站设计公司哪个好,在线做c语言题目的网站,wordpress 下载地址,wordpress改字号Protocol Buffers#xff08;protobuf#xff09;是一种由Google开发的用于序列化结构化数据的方法#xff0c;通常用于在不同应用程序之间进行数据交换或存储数据。它是一种语言无关、平台无关、可扩展的机制#xff0c;可以用于各种编程语言和环境中。 1、首先建立proto文…Protocol Buffersprotobuf是一种由Google开发的用于序列化结构化数据的方法通常用于在不同应用程序之间进行数据交换或存储数据。它是一种语言无关、平台无关、可扩展的机制可以用于各种编程语言和环境中。 1、首先建立proto文件syntax如果不标明proto3则会默认使用proto2版本在后面的使用过程中需要加上包名以防止命名空间冲突消息体中的序号表明在序列化数据中该变量出现的顺序。如果要规定该变量只有n中可能可以使用枚举类型例如表示人的性别男女。编辑 protoc -I. --cpp_out. message.proto protobuf3文档中文译版 syntax proto3; package csj; message MyMessage { int32 id 1; string content 2; }2、编写服务端编辑 g -o server server.cpp message.pb.cc -lprotobuf #include message.pb.h // 你的protobuf生成的头文件 #include iostream #include string #include sys/socket.h #include unistd.h #include arpa/inet.h using namespace std;// 接收protobuf消息 bool ReceiveProtobufMessage(int socket_fd, csj::MyMessage* message) {std::string serialized_message;const int BUFFER_SIZE 1024; // 设置一个缓冲区大小char buffer[BUFFER_SIZE];ssize_t received recv(socket_fd, buffer, BUFFER_SIZE, 0);if (received 0) {std::cerr Failed to receive message. std::endl;return false;}serialized_message.assign(buffer, received);if (!message-ParseFromString(serialized_message)) {std::cerr Failed to parse received message. std::endl;return false;}return true; }int main() {int server_fd, client_fd;struct sockaddr_in server_addr, client_addr;socklen_t client_len;server_fd socket(AF_INET, SOCK_STREAM, 0);if (server_fd 0) {cerrError opening socketendl;return 1;}memset(server_addr, 0, sizeof(server_addr));server_addr.sin_family AF_INET;server_addr.sin_addr.s_addr INADDR_ANY;server_addr.sin_port htons(12346);if (bind(server_fd, (struct sockaddr *) server_addr, sizeof(server_addr)) 0) {cerrError on bindingendl;return 1;}if (listen(server_fd, 5) 0) {cerrError on listenendl;return 1;}// std::cout Server listening on port PORT std::endl;client_len sizeof(client_addr);client_fd accept(server_fd, (struct sockaddr *) client_addr, client_len);if (client_fd 0) {cerrError on acceptendl;return 1;}// 假设socket_fd是已经建立的socket连接的文件描述符while(true){csj::MyMessage message;if (!ReceiveProtobufMessage(client_fd, message)) {std::cerr Failed to receive protobuf message. std::endl;return 1;}std::cout Received message: message.id() , message.content() std::endl;}close(client_fd);close(server_fd);return 0; } 3、编写客户端编辑 g -o client client.cpp message.pb.cc -lprotobuf #include message.pb.h // 你的protobuf生成的头文件 #include iostream #include string #include sys/socket.h #include unistd.h #include arpa/inet.h using namespace std;// 发送protobuf消息 bool SendProtobufMessage(int socket_fd, const csj::MyMessage message) {std::string serialized_message;if (!message.SerializeToString(serialized_message)) {std::cerr Failed to serialize message. std::endl;return false;}ssize_t sent send(socket_fd, serialized_message.data(), serialized_message.size(), 0);if (sent 0) {std::cerr Failed to send message. std::endl;return false;}return true; }int main() {int clientSocket;struct sockaddr_in serverAddress;// 创建套接字clientSocket socket(AF_INET, SOCK_STREAM, 0);if (clientSocket -1) {cerr Failed to create socket endl;return -1;}// 设置服务器地址和端口serverAddress.sin_family AF_INET;serverAddress.sin_addr.s_addr inet_addr(127.0.0.1);serverAddress.sin_port htons(12346);// 连接服务器if (connect(clientSocket, (struct sockaddr*)serverAddress, sizeof(serverAddress)) -1) {cerr Failed to connect to server endl;return -1;}// 假设socket_fd是已经建立的socket连接的文件描述符while(true){csj::MyMessage message;coutplease enter id:;int id;cinid;coutplease enter content:;string content;cincontent;message.set_id(id);message.set_content(content);if (!SendProtobufMessage(clientSocket, message)) {std::cerr Failed to send protobuf message. std::endl;return 1;}}close(clientSocket);return 0; }当服务端两次使用同一个端口号会出现Error on binding这是同一时间在同一端口上启动两个TCP服务器第二个服务器会收到端口已被占用的错误并且无法绑定到该端口上。这是因为操作系统会阻止多个应用程序同时绑定到相同的端口上以确保网络通信的正确性和稳定性。虽然服务端结束了但这个接口不会立马就“让”出来而是过一段时间由OS自动释放
http://www.w-s-a.com/news/417132/

相关文章:

  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好
  • 服务器上的网站erp教学零基础入门
  • 网站建设58设计资料网站
  • 如何把动态图发网站做头像网页设计实训报告小结
  • 做简历用的网站wordpress版权说明
  • 网站关键词有哪些网站新闻前置审批
  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司