当前位置: 首页 > 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.yutouwan.com/news/92320/

相关文章:

  • 搭建网站架构是什么意思百度打广告收费表
  • 北京网站优化流程海尔电商网站建设方案
  • 网站建设论文html格式手机端网站html好看的模板
  • 网站总浏览量企业文化ppt模板免费
  • 常州网站建设外包杭州滨江网站建设
  • 企业网站的信息内容包括什么诸暨市建设局网站
  • 国外做外贸哪个网站好些科技馆
  • 顶尖手机网站建设济宁融合百度推广公司
  • 青羊区企业网站建设策划爱站网长尾关键词挖掘工具下载
  • 网站在哪里备案网站自适应屏幕
  • 做网站开发需要什么手机上怎么设计广告图片
  • 产品宣传网站的重点保定哪做网站好
  • 王者荣耀官方网站广东网站设计招工.
  • 建自己的网站用多少钱成都网站外包优化公司
  • 长沙好的网站建设公司深圳外贸10强公司
  • 个人网站设计模版html河南网站建设价格大全
  • 广西网站建设推荐莆田网站建设创意
  • 网站开发公司 商业计划书wordpress用户中心授权码
  • wordpress网站关键词网站建设销售方面会遇到的问题
  • 上海网站seo设计提升网站的访问速度
  • 吉安seo网站快速排名做网站生意买螃蟹
  • 从客户—管理者为某一公司做一份电子商务网站管理与维护的方案onethink 网站
  • 建永久网站企业网站搭建方案
  • 盐城网站建设有限公司制作线下交易平台网站建设
  • 建立网站的第一步食品工厂设计平面图
  • google网站管理员工具 下载wordpress 字体 图标
  • 可以自己设计一个公司的网站东莞网页平面设计
  • 网站建设进度汇报网站建设先进城市
  • 网站 工作室 建设 方案企业邮箱邮箱
  • 网站建设方案范文1000字iis 与 wordpress