|
|
 |
专题栏目 |
 |
 |
相关文章 |
 |
|
|
|
|
 |
用VC++制作一个简单的局域网消息发送工程 |
热 ★★★ |
|
| 用VC++制作一个简单的局域网消息发送工程 |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
本工程类似于oicq的消息发送机制,不过他只能够发送简单的字符串。虽然简单,但他也是一个很好的VC网络学习例子。
本例通过VC带的SOCKET类,重载了他的一个接受类mysock类,此类可以吧接收到的信息显示在客户区理。以下是实现过程:
建立一个MFC 单文档工程,工程名为oicq,在第四步选取WINDOWS SOCKetS支持,其它取默认设置即可。为了简单,这里直接把about对话框作些改变,作为发送信息界面。
这里通过失去对话框来得到发送的字符串、获得焦点时把字符串发送出去。创建oicq类的窗口,获得VIEW类指针,进而可以把接收到的信息显示出来。
extern CString bb; void CAboutDlg::OnKillFocus(CWnd* pNewWnd) { // TODO: Add your message handler code here CDialog::OnKillFocus(pNewWnd); bb=m_edit; } 对于OICQVIEW类 char aa[100]; CString mm; CDC* pdc; class mysock:public CSocket //派生mysock类,此类既有接受功能 {public:void OnReceive(int nErrorCode) //可以随时接收信息 { CSocket::Receive((void*)aa,100,0); mm=aa; CString ll=" ";//在显示消息之前,消除前面发送的消息 pdc->TextOut(50,50,ll); pdc->TextOut(50,50,mm); } };
mysock sock1; CString bb; BOOL COicqView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { CView::OnSetFocus(pOldWnd);
// TODO: Add your message handler code here and/or call default bb="besting:"+bb; //确定发送者身份为besting sock1.SendTo(bb,100,1060,"192.168.0.255",0); //获得焦点以广播形式发送信息,端口号为1060
return CView::OnSetCursor(pWnd, nHitTest, message); }
int COicqView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; sock1.Create(1060,SOCK_DGRAM,NULL);//以数据报形式发送消息
static CClientDC wdc(this); //获得当前视类的指针 pdc=&wdc; // TODO: Add your specialized creation code here
return 0; }
运行一下,打开ABOUT对话框,输入发送信息,enter键就可以发送信息了,是不是有点像qq啊?
|
|
作者:admin 文章来源:本站原创 点击数: 更新时间:2006-5-23 11:38:24  |
|
|
上一篇文章: 利用HOOK拦截封包原理 下一篇文章: Winsock开发网络通信程序的经典入门 |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|
|
|