文章目录
前言
- 前言
- 一、SOCKET 网络套接字初始化
- 二、SOCKET 网络套接 读取远程端 ( Android 模拟器 ) 信息
- 三、SOCKET 网络套接 向远程端 ( Android 模拟器 ) 写出数据
本篇博客重点分析 CNetwork
网络模块 ;
在 CNetwork::CNetwork()
构造函数中 , 初始化套接字 , 初始化时设置 无效套接字 INVALID_SOCKET
;
CNetwork::CNetwork()
{
// 初始化套接字 , 初始化时设置 无效套接字 INVALID_SOCKET
m_server = INVALID_SOCKET;
}
在初次连接时 , 判断当前套接字是否是无效的 ,
- 如果当前套接字是无效的 , 则初始化网络 , 建立网络连接 ;
- 如果当前套接字不是无效的 , 则关闭当前套接字 , 然后设置为无效套接字 ;
bool CNetwork::WaitClientOnline()
{
/* 等待客户端联网时 , 判断当前套接字是否是无效的 ,
如果当前套接字是无效的 , 则初始化网络 , 建立网络连接
如果当前套接字不是无效的 , 则关闭当前套接字 , 然后设置为无效套接字
*/
if (m_server != INVALID_SOCKET) {
closesocket(m_server);
m_server = INVALID_SOCKET;
}
int ret = 0;
sockaddr_in server;
BOOL bsocket;
m_server = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED);
bsocket = TRUE;
server.sin_family = AF_INET;
/* 连接本机 IP 地址 , 如果是与真机连接 , 这里设置手机在局域网的 IP 地址 */
server.sin_addr.s_addr = inet_addr("127.0.0.1");
/* 自定义端口 , 手机端 与 PC 端约定一致即可 , 1024 ~ 65535 范围 , 1024 以下是系统使用的端口 */
server.sin_port = htons(9527);
/* 正式连接的方法 */
ret = connect(m_server, (const struct sockaddr*)&server, sizeof(server));
if (ret
关注
打赏
热门博文
- 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )
- 【Android Gradle 插件】Gradle 构建生命周期 ③ ( BuildListener 构建监听器 | TaskExecutionGraphListener 任务执行图监听器 )
- 【Android Gradle 插件】Gradle 构建生命周期 ② ( Gradle 类的添加构建生命周期监听器函数 | Gradle#addListener 函数 )
- 【Android Gradle 插件】Gradle 构建生命周期 ① ( 分析构建脚本 | 执行初始化配置 | 执行 Gradle 任务 | Project#beforeEvaluate 函数 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑨ ( 控制 Gradle 执行任务顺序 | Task#finalizedBy 函数 | 控制 Gradle 执行任务顺序示例分析 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑦ ( 控制 Gradle 执行任务顺序 | Task#dependsOn 函数 | Task#mustRunAfter 函数 )
- 【数学分析】集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
- 【数学分析】学科简介 ( 初等数学缺陷 | 微分与积分 | 学习数学分析的目的 | 数学分析与高等数学对比 )
- 【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )