加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用C++写聊天器之服务器(一)

(2017-11-27 19:22:01)
标签:

it

c

聊天器

分类: 编程学习
决定再写一篇说说我的编写过程也顺便复习一遍。
项目用的编译器是vs2015。首先是写服务端,第一步当然是界面的制作。界面的制作就不多说了,完全是靠拖控件的方式简单得很。
整个聊天器基于TCP协议,以下是控件的属性。
 控件类型  控件ID  Caption属性  控件变量  变量类型
 列表框  LIST_IPADD      
 按钮  BTN_START  开始    
 按钮  BTN_STOP  关闭    
首先创建一个CSocket的派生类->CListenSocket
于是就会出现两个文件ListenSocket.h,ListenSocket.cpp
那个OnAccept函数是我后来添加的,现在不写也行,等下解释。
创建好后返回界面
返回界面后,在开始按钮那右键菜单如图
http://s9/mw690/005vXgPAzy7g8MwBxX2a8&690
http://s12/mw690/005vXgPAzy7g8MFyiQb6b&690
确定后返回*dlg.h 我们会看到它自动为我们添加了一个函数,方不方便(>ω・* )ノ
而后我们声明一个CListenSocket类型的变量,m_pListenSocket这个变量待会要用到
http://s5/mw690/005vXgPAzy7g8NEW3yI04&690
*号代表指针,好了我们返回*Dlg.cpp找到刚刚那个开始按钮事件函数
http://s15/mw690/005vXgPAzy7g8HOapZkae&690
这是按钮的点击后所要进行的代码
第一个if函数初始化并使用一个端口(3726,除了已被使用的0-1024以外还要注意的是不要与其他软件的端口冲突。)
然后顺便判断是否创建成功,创建失败了就给个弹窗提示“创建失败:(这个是错误信息'GetLastError()')”
下面这个if函数也差不多,监听端口“Listen()”函数会返回布尔值然后借此判断是否监听成功。
失败后要记得删除m_pListenSocket的地址空间(delete)
EnableWindow()这个函数主要是控制按钮是否被禁用,如果要按钮为不可点击的状态则设置为false。

返回界面,用同样的方法为关闭按钮添加一个事件
http://s6/mw690/005vXgPAzy7g8OayDPv65&690
这段代码解释起来很简单,先判断m_pListenSocket为不为空,不为空则用Close()函数关闭,而后记得删除地址空间,调整按钮的状态。
那么这个时候,先按“F5”测试测试运行以下看看会不会有错。
那么今天先写在这里

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有