| 订阅 | 在线投稿
分享
 
 
 

用VC++制作一个简单的局域网消息发送工程

来源:互联网  宽屏版  评论
2008-06-01 01:58:19

本工程类似于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啊?

用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啊? [url=http://www.wangchao.net.cn/bbsdetail_1785106.html][img]http://image.wangchao.net.cn/it/1323424691405.gif[/img][/url] 更多内容请看家庭无线局域网 局域网 局域网专题,或
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有