用VC++制作一個簡單的局域網消息發送工程
發表于:2007-07-14來源:作者:點擊數:
標簽:
作者: 梁晨寶 本工程類似于oi cq 的消息發送機制,不過他只能夠發送簡單的字符串。雖然簡單,但他也是一個很好的VC 網絡 學習例子。 本例通過VC帶的SOCKET類,重載了他的一個接受類mysock類,此類可以吧接收到的信息顯示在客戶區理。以下是實現過程: 建立一
作者: 梁晨寶
本工程類似于oi
cq的消息發送機制,不過他只能夠發送簡單的字符串。雖然簡單,但他也是一個很好的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;
}
對于OI
CQVIEW類
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???
原文轉自:http://www.kjueaiud.com