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

做淘宝这样的网站需要什么如何制作网址

做淘宝这样的网站需要什么,如何制作网址,地图上如何添加自己公司的地址,web开发用哪个语言好TCP套接字通信核心要点 通信模型架构 客户端-服务端模型 CS架构:客户端发起请求,服务端响应和处理请求双向通道:建立连接后实现全双工通信 服务端搭建流程 核心步骤 创建套接字 int server socket(AF_INET, SOCK_STREAM, 0); 参数说明&am…

TCP套接字通信核心要点


通信模型架构

客户端-服务端模型

  • CS架构:客户端发起请求,服务端响应和处理请求
  • 双向通道:建立连接后实现全双工通信

服务端搭建流程

核心步骤

  1. 创建套接字

    int server = socket(AF_INET, SOCK_STREAM, 0);
    • 参数说明:AF_INET(IPv4)、SOCK_STREAM(TCP)、协议自动选择
  2. 绑定地址

    struct sockaddr_in addr = {.sin_family = AF_INET,.sin_port = htons(port),.sin_addr.s_addr = INADDR_ANY
    };
    bind(server, (struct sockaddr*)&addr, sizeof(addr));
    • 关键操作:字节序转换(htons)、IP绑定策略(INADDR_ANY
  3. 监听连接

    listen(server, 10); // 监听队列长度=10
  4. 接受连接

    int client = accept(server, (struct sockaddr*)&client_addr, &client_len);
    • 获取客户端地址:inet_ntop转换IP,ntohs转换端口
  5. 数据交互

    • 读取数据:read()recv()
    • 终止条件:返回值为0时表示客户端断开

客户端搭建流程

核心步骤

  1. 创建套接字

    int client = socket(AF_INET, SOCK_STREAM, 0);
  2. 设置服务端地址

    struct sockaddr_in addr = {.sin_family = AF_INET,.sin_port = htons(server_port),.sin_addr.s_addr = inet_addr("192.168.1.1")
    };

  3. 建立连接

    connect(client, (struct sockaddr*)&addr, sizeof(addr));
  4. 发送数据

    write(client, buffer, sizeof(buffer));

协议包设计

结构体定义

typedef struct Pack {int packsize;    // 总字节数(含包头)char buf[4096];  // 数据缓冲区int used;        // 已使用字节数
} pack_t;

 

关键操作

  1. 数据封装

    void append(pack_t* pack, const char* str) {short len = strlen(str);*(short*)(pack->buf + pack->used) = len; // 写入长度memcpy(pack->buf + pack->used + 2, str, len); // 写入内容pack->used += (len + 2);pack->packsize = 4 + pack->used; // 更新总大小(含4字节包头)
    }


     

  2. 数据解析

    char** analysis(pack_t* pack) {char* buf = pack->buf;char** list = calloc(20, 8); // 存储解析后的字段int readed_size = 0;while (*(short*)(buf + readed_size) != 0) {short len = *(short*)(buf + readed_size);readed_size += 2;memcpy(temp, buf + readed_size, len);list[i++] = strdup(temp); // 动态分配存储}return list;
    }


关键问题处理

粘包与拆包

  • 粘包:多次发送的小数据包合并传输
  • 拆包:大数据包拆分发送(如超过1500字节限制)
  • 解决方案:协议包头声明数据长度,接收方按长度解析

连接管理

  • 服务端维护:通过accept()返回的客户端描述符管理多个连接
  • 异常断开检测read()返回0时表示客户端主动关闭

代码实践要点

  • 错误处理:检查socket()/bind()/listen()/connect()的返回值
  • 资源释放close()关闭套接字,free()释放动态内存
  • 字节序转换:端口号使用htons/ntohs,IP使用inet_ntop/pton

总结:TCP套接字通信围绕地址绑定、连接管理、协议设计展开,需掌握服务端/客户端搭建流程、粘包处理及协议包解析方法,结合错误处理实现稳定通信。

http://www.dtcms.com/wzjs/239223.html

相关文章:

  • 新品发布会发言稿广州抖音seo公司
  • 淄博网站开发招聘百度一下百度网页版
  • 手机微网站怎么制作的外链发布的平台最好是
  • 外贸用什么网站开发客户seo查询平台
  • 网站备案 99优化网站排名公司
  • 网站建设wordpress比较最新中央人事任免
  • 跨境电商网站建设方案网络营销名词解释答案
  • 台州市知名专业做网站广州seo公司如何
  • 怎么做地区网站电商网站建设公司
  • 江苏网站开发建设下载百度app到手机上
  • 徐州网站制作新东方培训机构官网
  • 网站权重值在较长时间内是一定的页面优化新闻发布会新闻通稿
  • 网站建设银行北京软件开发公司
  • 万盛经开区规划建设局网站软文如何推广
  • 网站建设纠纷怎么投诉上海谷歌优化
  • wordpress 插件 弹窗优化网站排名如何
  • 广州顺德网站建设cdq百度指数
  • 网站设计稿一般尺寸百度推广后台登陆官网
  • 合肥中小企业网站制作网站是怎么优化的
  • 有哪些做ppt的网站有哪些百度联盟点击广告赚钱
  • 在什么网站能找到做外贸的邮箱百度开户推广多少钱
  • 有人上相亲网站做传销燕窝大一网页设计作业成品免费
  • 怎么进行网站开发seo公司排行
  • 闵行网站制作设计公司如何用html制作一个网页
  • 沛县网站建设企业免费制作永久个人网站
  • 云南网站设计seo排名赚下载
  • 做三盛石材网站的公司百度关键词规划师工具
  • 网站制作公司报价悟空建站seo服务
  • 如何使用wordpress搭建网站网站建设流程是什么
  • 做网站制作课程总结cps推广