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

塑胶制品塘厦东莞网站建设衡水哪有做网站的

塑胶制品塘厦东莞网站建设,衡水哪有做网站的,中国建筑集团有限公司天眼查,中国最大网站建设商红队专题 招募六边形战士队员1.课前回顾unicode编码 字符串 2.界面编程(下)对话框重载消息函数更改对话框同步更改 3.服务端上线#xff0c;下线#xff0c;以及客户端的资源销毁(上)添加socket 变量添加 socket 消息填补config信息创建线程函数 并运行添加Addhost添加 getIt… 红队专题 招募六边形战士队员1.课前回顾unicode编码 字符串 2.界面编程(下)对话框重载消息函数更改对话框同步更改 3.服务端上线下线以及客户端的资源销毁(上)添加socket 变量添加 socket 消息填补config信息创建线程函数 并运行添加Addhost添加 getItemData创建列表节点类ItemData编写构造函数类成员监听线程运行函数监听线程 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 1.课前回顾 #pragma comment(lib,“ws2_32.lib”) unicode编码 字符串 _T 宏 多字节编码 ----字符集 知识点 项目属性 2.界面编程(下) 对话框 对话框资源 头文件 添加 private:CToolBar m_toolbar;CImageList m_imagelist;CStatusBar m_statusbar;CBitmap m_subbmp[6];CImageList m_mainicon;void UpdateMain(int port);UINT m_port;UINT m_max;UINT m_Sound;CRect m_rect; // 矩形变量 重载消息函数 查看声明 Dlgcpp里// 当客户端大小发生改变 计算差值 客户端内部控件 同步改变 void CExecN0vvDlg::OnSize(UINT nType, int cx, int cy) {// 基类 对对话框改变CDialog::OnSize(nType, cx, cy); // 类型等于最小化的 宏if(nType SIZE_MINIMIZED){return;}// TODO: 在此处添加消息处理程序代码CWnd *pWnd; // 窗口类指针pWnd GetDlgItem(IDC_LIST1); //获取控件句柄 条目id// 控件大小操作if(pWnd)//判断是否为空因为对话框创建时会调用此函数而当时控件还未创建{CRect rect,rect_l; //获取控件变化前大小 eg 50x50GetClientRect(rect_l); // 客户区 控件大小pWnd-GetWindowRect(rect);ScreenToClient(rect);rect.right cx; // 把控件大小变换//rect_l 变化前 rect.bottom rect.bottom (rect_l.bottom - m_rect.bottom);pWnd-MoveWindow(rect);//设置控件大小// 重设状态栏 置底RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);}/*else{delete pWnd;}*/GetClientRect(m_rect);// 还是记录初始值} 更改对话框同步更改 初始化时候调用了 updatemain 初始化程序界面 获取客户端程序客户区 界面大小 存放在 m_rect 3.服务端上线下线以及客户端的资源销毁(上) 列表控件 常规对应 socket指针 我们对应一个类指针 启动监听线程 不会发生阻塞状态 添加socket 变量 添加 socket 消息 头文件定义 InitSocket Dlgcpp 加入 bool C你的Dlg::InitSocket() //初始化SOCKET {WSADATA WSAData; // 初始化WSAStartup(MAKEWORD(2,2), WSAData);SOCKADDR_IN saddr; // 声明结构体// 结构体操作 初始化 s::socket(AF_INET,SOCK_STREAM,0);if(sSOCKET_ERROR){MessageBox(_T(创建连接失败),_T(提示),MB_OK|MB_ICONWARNING);return false;}// 结构体赋值saddr.sin_familyAF_INET;saddr.sin_addr.S_un.S_addrINADDR_ANY;saddr.sin_porthtons(m_port);int nRet;nRet::bind(s,(SOCKADDR *)saddr,sizeof(saddr));if(nRet SOCKET_ERROR){MessageBox(_T(绑定端口失败),_T(提示),MB_OK|MB_ICONWARNING);return false;}// 最大上线主机数量 m_max Wint类型nRetlisten(s,m_max);if(nRet SOCKET_ERROR){MessageBox(_T(监听端口失败),_T(提示),MB_OK|MB_ICONWARNING);return false;}while(1){SOCKET SerSock;SOCKADDR_IN Seraddr; // 结构体int Seraddrsizesizeof(Seraddr);// 接受连接SerSock accept(s,(sockaddr *)Seraddr,Seraddrsize);if (SerSock INVALID_SOCKET){continue;}// 添加主机AddHost(SerSock,Seraddr);}return true; } syc系列 winSocket I/O模型 填补config信息 创建线程函数 并运行 为了适配多线程 防止上面的循环死锁 堵塞 所以把初始化操作封装到一个函数内 Dlgcpp // 空指针 传递了一个 当前类的 this指针 DWORD WINAPI C你的Dlg::OninitSocket(LPVOID self) //初始化Socket线程 {// 强制转换C你的Dlg* t (C你的Dlg*)self;t-InitSocket();return 0; }头文件静态声明static DWORD WINAPI OninitSocket(LPVOID self); 关闭句柄 添加Addhost void C你的Dlg::AddHost(SOCKET sock,SOCKADDR_IN addr) //添加主机函数 {GetNewItemData(sock,addr);// 每一个主机节点都是一个类的指针 新申请一个类指针return; }头文件声明 void AddHost(SOCKET sock,SOCKADDR_IN addr); 添加 getItemData void C你的Dlg::GetNewItemData(SOCKET sock,SOCKADDR_IN addr) //获取新的条目数据 {// 条目信息类 指针 并判断 id是否重复CItemData *item;int id; //声明新的idint Count m_list.GetItemCount();if(Count 0){id 0;}else{id 0;for(int i0;iCount;i){item (CItemData*)m_list.GetItemData(i);if(item-m_id id) // 判断是否为这个 id{i 0;id id 1;continue;}}}item NULL;item new CItemData(id,sock,addr,this-m_hWnd);// 声明一个 条目类item-Run();// 最后调用了 run这个函数 }头文件声明 void GetNewItemData(SOCKET sock,SOCKADDR_IN addr); 创建列表节点类 头文件中调用这个类 ItemData编写 构造函数 cpp 方法 条目信息CItemData::CItemData(UINT id,SOCKET sock,SOCKADDR_IN *addr,HWND m_hWnd) {this-m_id id; // 上线主机id号 删除操作this-m_sock sock; // 消息传递 SOCKADDR_IN *addr 对方ip获取操作this-m_hWnd m_hWnd; // 获取父类指针char *csIP inet_ntoa(addr-sin_addr); // inet_ntoa 获取ip addr结构体m_IP.Format(_T(%s),_T(127.0.0.1));m_Address.Format(_T(未知));if(m_Address.IsEmpty()) // 地理位置信息{m_Address.Format(_T(未知));} }头文件#pragma onceclass CItemData { public:CItemData(UINT id,SOCKET sock,SOCKADDR_IN *addr,HWND m_hWnd);~CItemData(void);UINT m_id;void Run();SOCKET GetSocket();CString m_IP;CString m_Address;CString m_OS;CString m_Ver; // 操作系统版本bool Cam; // 摄像头private: SOCKET m_sock; HWND m_hWnd;static DWORD WINAPI OnListen(LPVOID lp);void OnBeginListen(); }; 类成员监听线程 DWORD WINAPI CItemData::OnListen(LPVOID lp) {CItemData* t (CItemData*)lp;t-OnBeginListen(); // 调用监听线程return 0; } 运行函数 用多线程手法来运行 监听线程 void CItemData::Run() {::CloseHandle(CreateThread(0,0,OnListen,(LPVOID)this,0,0)); } 监听线程 监听远程主机信息 操作 发送信息等等 void CItemData::OnBeginListen() //等待完善 { }
http://www.huolong8.cn/news/92320/

相关文章:

  • 网站首页图片怎么做哪里可以制作网站
  • 用jsp和mysql做网站宁波行业网站建设
  • 在网站上做外贸杭州哪家公司做网站好
  • 青岛建网站的公司有哪些培训方案
  • 网站建设 站内页面连接网站制作价格东莞
  • 百度收录什么网站吗网站与域名
  • 深圳手机医疗网站建设m2型虚拟主机带宽 网站
  • 在哪里做公司网站网站cms系统排名
  • 免费建站模板网站动态表情包在线制作
  • 网站建设有哪些分工分网站建设 慕课
  • 网站敏感关键词烟店网站建设
  • seo优化在线诊断优化设计的答案
  • 建筑网站哪里找我想做个卷帘门网站怎么做
  • dz网站模版wordpress售后主题
  • 传奇服务器网站如何建设wordpress怎么静态页面
  • 查建设工程业绩在哪个网站做网站需要申请商标哪些类目
  • 网站建设 电子书中国最大的外包公司有哪些
  • 建设银行网站怎么开通短信服务聊天软件是怎么开发的
  • 四川成都营销型网站dedecms做网站全教程
  • 网站手机端排名软件四川省住房与城乡建设厅网站官网
  • 绵阳网站建设制作企业手机网站 案例
  • 做网站多少钱一个月广西网络营销外包公司
  • 舟山市建设工程质量监督站网站陕西交通建设集团蓝商公司网站
  • 深圳招聘网站有哪些广州越秀金融大厦
  • 微信二维码网站制作wordpress拖动实现
  • 网站建设取得实效沈阳网络平台推广公司
  • 做pc端网站行情网站顶部悬浮导航代码
  • 做网站可以使用免费空间吗给企业做网站的平台
  • 树荫营销网站十大国外室内设计网站
  • 教如何做帐哪个网站好长沙专业企业建站联系人