| 導購 | 订阅 | 在线投稿
分享
 
 
 

用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=/bbs/detail_1785106.html][img]http://image.wangchao.net.cn/it/1323424691405.gif[/img][/url] 更多內容請看家庭無線局域網 局域網 局域網專題,或
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有