c++千万级别高并发网络编程(三)

发送结构化网络消息为什么需要修正为什么需要修正
摘要由CSDN通过智能技术生成

为什么需要修正

j结构化消息与前者区别

结构化消息

这里是指使用结构体传输数据。
需要考虑字节序对齐,如果客户端和服务器编程语言相同,且在同一环境下,通常字节是相同的,但是可能存在字节长度不一致而导致消息传输与接收不一致的额情况发生。

新增内容

  • 利用结构体一次性传输结构化的消息。

服务器整体代码

#define WIN32_LEAN_AND_MEAN
#define SOCKET int  //VS2015已经定义好的,可以直接用
#include<WinSock2>
#include<windows.h>
#include<iostream>
#include<string.h>
struct DataPackage  //以最简单的情形为例,可以依据实际工程需求做自定义定制。
{
   
      int age;
      char name[32];
};
int main()
{
   
  WORD ver = MAKEWORD(2,2);//调用API2代创建2.x版本
  WSADATA dat;
  WSAStartup(ver,&dat);//启动
  //创建套接字
  SOCKET  seradd =socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  //bind
  SOCKADDR_IN _sin = {
   };	
  _sin .sin_family = AF_INET;
//sin_port和sin_addr都必须是网络字节序(NBO),一般可视化的数字都是主机字节序。所以需要转换host to net unsigned.数字可改 
  _sin .sin_port = htons(1234);
  _sin.sin_addr_s_un.S_addr = INADDR_ANY;//访问本机任何网络地址都可以,具体也可以改为本机的某个特定地址
  if (SOCKET_ERROR == bind(seradd , (sockaddr *) &_sin , sizeof(_sin)</
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值