![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ Socket网络编程(Windows)
文章平均质量分 68
风声中※倦容
这个作者很懒,什么都没留下…
展开
-
5. 网络数据传输中的粘包阻塞等问题
至此,客户端代码和服务端代码都可以正常运行,收发数据:但是,程序在网络中快速的收发大量数据时,会出现什么问题呢?现在,我们对程序做一些修改,进行一些测试:将client输入命令线程屏蔽,自动发送数据://启动线程函数 //thread t1(cmdThread, &client); //t1.detach(); Login login; strcpy(login.UserName, "anthony"); strcpy(login.passWord, "chen"); .原创 2021-03-02 22:11:40 · 533 阅读 · 0 评论 -
4. 封装TcpServer类和TcpClient类
在前面几次的代码里面,因为没有采用面向对象编程的方法,所以代码看起来比较混乱,这次我们采用面向对象编程封装出TcpServer类和TcpClient类TcpClient类声明:#ifndef _TCPCLIENT_H_#define _TCPCLIENT_H_#include <WinSock2.h>#include <Windows.h>#pragma comment(lib, "ws2_32.lib")enum CMD{ CMD_LOGIN, CMD_Log原创 2021-02-22 20:48:29 · 698 阅读 · 2 评论 -
1. Windows网络编程(C++ Socket编程)
Windows网络编程(C++ Socket编程)文章目录Windows网络编程(C++ Socket编程)基于TCP/IP协议的C/S模型服务端1. 打开网络库2. 校验版本3. 创建一个socket4. 绑定地址与端口5. listen监听网络端口6. accept等待客户端连接(创建客户端socket)7. 与客户端收发消息客户端基于TCP/IP协议的C/S模型特点:面向连接的、可靠的、基于字节流的传输层协议。C/S 即 客户端/服务器 模型。socket:套节字服务端网络头文件原创 2021-02-12 19:52:04 · 7233 阅读 · 7 评论 -
2. C++ Socket 网络数据传输的几种方式
2. C++ Socket 网络数据传输的几种方式C++ Socket在进行网络数据的传送时,数据一般是char类型的字符数组,除此之外还有一些方法可以传送我们自己定义的数据类型自定义结构体Json序列化定义Class对象1. 结构体定义一个结构体,例如:struct DataPack{ int age; string name;};在发送数据的时候对数据进行处理,将DataPack类型的指针强制转换成char类型指针,具体如下:DataPack da = { 20, "原创 2021-02-17 12:08:42 · 3896 阅读 · 1 评论 -
3. 加入select网络模型和多线程处理多客户端
单独的使用socket进行客户端和服务器的通信时,是一对一的阻塞模式,在调用这些阻塞函数时,不能去做其他事情,只能被动的去等待。我们可以使用select网络模型来处理多个客户端。C/S模型中accept()会阻塞一直傻等socket来链接select模型只解决accept()傻等的问题,不解决recv(), send()执行阻塞问题select模型的使用逻辑:把所有的socket(服务器和客户端)放进一个数组中select会遍历整个数组将有响应的socket放进另一个数组对有响应的s.原创 2021-02-20 19:42:44 · 584 阅读 · 0 评论