青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

網絡軟件開發

網絡軟件開發,vc ++ 、linux 、asp、sql server 2000 android、iOS

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  5 隨筆 :: 1 文章 :: 45 評論 :: 0 Trackbacks

Socket編程在大多數的編程語言中都是一件比較有趣的事情。它是比較常用的編寫通過網絡通信的服務器和客戶端方法。在windows平臺Socket通信大多是基于MS Winsock設計的。Windows支持基于TCP和UDP的socket通信。Windows APIs在socket編程中是非常有用的,但是有些人發現在用它們工作的時候有困難。
所以在這里我介紹一種最簡單用MFC socket類進行socket編程的方法。這不僅可以使你的工作變得簡單而且能減少你在網絡程序上的開發時間。你可以定制一個socket類,然后你可以在你的其他的網絡應用程序中重用。
在socket編程中,MFC提供了兩個基本的類,分別是CAsyncSocket和Csocket。Csocket是從CAsyncSocket繼承來的。我們可以建立定制的socket類,也是從CasyncSocket繼承而來的,當然也是為了我們程序特殊的需要。
初始化socket
首先需要調用AfxSocketInit()函數來初始化我們的socket環境。
為了初始化sockets,我們需要調用AfxSocketInit()函數。它通常是在MFC中的InitInstance()函數中被調用的。如果我們用程序向導來創建socket程序的話,查看“use Windows Sockets”這個選項,然后選中它。它將會自動的為我們創建這個步驟了。(如果我們沒有選中這個選項的話,我們也可以手動添加這些代碼的。)這個函數的返回值顯示這個函數的調用成功或失敗。
BOOL CServerApp::InitInstance()
{....
if( AfxSocketInit() == FALSE)
  {
  AfxMessageBox("Sockets Could Not Be Initialized");
  return FALSE;
  }
  ...
}
創建Server Sockets
為了創建一個Server Socket,我們需要聲明一個CAyncSocket的變量或者我們自己定制的一個從AyncSocket或是Cscket繼承來的類的類型的變量。然后調用Create()函數,同時指定監聽的端口。這個函數的返回值顯示這個函數的調用成功或失敗。
UpdateData(TRUE);
m_sListener.Create(m_port);
if(m_sListener.Listen()==FALSE)
{
AfxMessageBox("Unable to Listen on that port,please try another port");
m_sListener.Close();
return;
}
創建Client Sockets
為了創建Client socket類,我們需要聲明一個CAyncSocket的變量或者我們自己定制的一個從AyncSocket或是Cscket繼承來的類的類型的變量。然后調用Create()函數,同時指定監聽的端口。這個函數的返回值顯示這個函數的調用成功或失敗。
m_sConnected.Create();
m_sConnected.Connect("server ip",port);
監聽客戶端的連接
創建了server socket以后,我們要進行監聽。調用Listen()函數。這個函數的返回值顯示這個函數的調用成功或失敗。
if( m_sListener.Listen()== FALSE)
{
AfxMessageBox("Unable to Listen on that port,please try another port");
m_sListener.Close();
return;
}
接受連接
連接請求要被接受accept,是用另外的socket,不是正在監聽的socket。請參看代碼。
void CXXXDlg::OnAccept()
{
 CString strIP;
 UINT port;
 if(m_sListener.Accept(m_sConnected))
 {
  m_sConnected.GetSockName(strIP,port); //應該是GetPeerName,獲取對方的IP和port
  m_status="Client Connected,IP :"+ strIP;
  m_sConnected.Send("Connected To Server",strlen("Connected To  Server"));     
UpdateData(FALSE);
 }
 else
 {
 AfxMessageBox("Cannoot Accept Connection");
 }
}
發送數據
數據放在一個buffer中或是結構體中,調用send()函數發送。
m_sConnected.Send(pBuf,iLen);
接受數據
調用receive()接受數據。
void CXXXrDlg::OnReceive()
{
char *pBuf =new char [1025];
CString strData;
int iLen;
iLen=m_sConnected.Receive(pBuf,1024);   
if(iLen == SOCKET_ERROR)     
  {
  AfxMessageBox("Could not Recieve");     
  }     
else    
  {
  pBuf[iLen]=NULL;
  strData=pBuf;
  m_recieveddata.Insert(m_recieveddata.GetLength(),strData);
 //display in server             
 UpdateData(FALSE);
 m_sConnected.Send(pBuf,iLen);  //send the data back to the Client    
 delete pBuf;         
  }
}
關閉連接
m_sConnected.ShutDown(0);    停止發送數據
m_sConnected.ShutDown(1);    停止接受數據
m_sConnected.ShutDown(2);    停止發送接受數據
m_sConnected.Close();
編寫自己的socket類
在class view中選擇添加一個新類,設置它的基類為CAsyncSocket,在類向導的幫助下添加如下的一些函數。
class MySocket : public CAsyncSocket
{ // Attributes
public:
 // Operations
public:
MySocket();
virtual ~MySocket();
// Overrides
public:
void SetParentDlg(CDialog *pDlg);// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(MySocket)
public:
virtual void OnAccept(int nErrorCode);
virtual void OnClose(int nErrorCode);
virtual void OnConnect(int nErrorCode);
virtual void OnOutOfBandData(int nErrorCode);
virtual void OnReceive(int nErrorCode);
virtual void OnSend(int nErrorCode);
//}}AFX_VIRTUAL // Generated message map functions
//{{AFX_MSG(MySocket)
// NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG
protected:
private:
CDialog * m_pDlg;
};
設置“Parent Dialog”
調用這個socket類的SetParentDlg函數,保證當socket事件發生的時候這個窗體能接收到。
m_sListener.SetParentDlg(this);
m_sConnected.SetParentDlg(this);
建立Socket 事件和窗體成員函數之間的聯系
在這個窗體類中添加一些函數,比如void OnReceive(); void OnClose(); void OnAccept(); void OnConnect()等,它們會在我們編寫的的socket類中調用到。
void MySocket::OnAccept(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
if(nErrorCode==0)
{
((CServerDlg*)m_pDlg)->OnAccept();
}
CAsyncSocket::OnAccept(nErrorCode);
}
這里只寫了一個OnAccept()函數,其他的幾個中也有類似的調用。詳細的請參考代碼。


email: ghs_linux@163.com
歡迎交流哦 :)

posted on 2006-07-27 12:05 信任 閱讀(6085) 評論(38)  編輯 收藏 引用

評論

# re: MFC socket程序開發 2006-08-08 14:14 ankh
hi~能否把完整的代碼貼出來?
或email到ankh2008@hotmail.com?  回復  更多評論
  

# re: MFC socket程序開發 2006-08-08 14:14 ankh
hi~能否把完整的代碼貼出來?
或email到ankh2008@hotmail.com?  回復  更多評論
  

# re: MFC socket程序開發 2006-08-09 08:33 ghslinux
可以的。  回復  更多評論
  

# re: MFC socket程序開發 2006-08-11 12:18 ghslinux
已經發送,請查收。  回復  更多評論
  

# re: MFC socket程序開發 2006-08-18 09:22 marco
能否把完整的代碼email到marcovanshine@hotmail.com? 謝謝  回復  更多評論
  

# re: MFC socket程序開發 2006-09-14 15:28 Mac
好東西,學習...  回復  更多評論
  

# re: MFC socket程序開發 2006-10-09 23:33 清風
樓主能否把完整代碼發送到chenweizi@sina.com
多謝  回復  更多評論
  

# re: MFC socket程序開發 2007-01-23 11:36 cherry
謝謝,小妹可否求一份完整的代碼,發送到lyl83213@hotmail.com  回復  更多評論
  

# re: MFC socket程序開發 2008-04-07 15:36 majia
請把這段程序的代碼發給我一份!謝謝!majia1984@126.com  回復  更多評論
  

# re: MFC socket程序開發 2008-04-10 11:52 小路
你好 我也要一份 謝謝你!!!
blueshiang@hotmail.com  回復  更多評論
  

# re: MFC socket程序開發 2008-04-23 10:25 清涼
您好,能否也給我發一份,學習,呵呵,謝謝
huangsup110@hotmail.com  回復  更多評論
  

# re: MFC socket程序開發 2008-04-23 14:06 信任
已經發送  回復  更多評論
  

# re: MFC socket程序開發 2008-05-07 00:33 xiaoye
能否給我發一分,yesj-2008@163.com,謝謝  回復  更多評論
  

# re: MFC socket程序開發 2008-05-09 15:16 信任
已發送。  回復  更多評論
  

# re: MFC socket程序開發 2008-05-09 15:17 信任
@清涼
已發送  回復  更多評論
  

# re: MFC socket程序開發 2008-05-20 19:47 piccolo
您好,能給我也發一份么,我在做畢業設計,有網絡編程方面的內容
謝謝 郵箱是
lgpiccolo@163.com  回復  更多評論
  

# re: MFC socket程序開發 2008-05-23 11:03 ly
你好,能給我發一份么》?我正在學習這方面,謝謝
ly24381@163.com  回復  更多評論
  

# re: MFC socket程序開發 2008-06-03 20:21 goldfisher
能否給我發一個完整的代碼?非常感謝  回復  更多評論
  

# re: MFC socket程序開發 2008-06-03 20:22 goldfisher
剛忘了帖EMAIL,呵呵,goldfisher.jin@gmail.com  回復  更多評論
  

# re: MFC socket程序開發 2008-06-06 11:14 hwan
能給我也發一個完整的代碼嗎? hwan_hh@126.com,謝謝  回復  更多評論
  

# re: MFC socket程序開發 2008-06-10 14:23 hby0501
LZ 我也想要一份,可以么? 謝謝!!!  回復  更多評論
  

# re: MFC socket程序開發 2008-06-10 14:24 hby0501
hby0501@163.com  回復  更多評論
  

# re: MFC socket程序開發 2008-06-13 23:09 hiyawu
小弟需要完整代碼
郵箱 123514228@qq.com
???thanks  回復  更多評論
  

# re: MFC socket程序開發 2008-07-09 20:50 好人
你好,我很需要這方面的代碼。能否給我發一份
謝謝
zs060226@163.com  回復  更多評論
  

# re: MFC socket程序開發 2009-04-18 16:35 caogenxia
可以給一份代碼我看看嗎,caogenxia@qq.com
  回復  更多評論
  

# re: MFC socket程序開發[未登錄] 2009-06-13 21:30 天行
能不能將完整代碼發到meibao_2000@163.com。

先謝了。  回復  更多評論
  

# re: MFC socket程序開發 2009-06-25 00:44 hannah
可以給我一分完整代碼嗎?yuhannah@hotmail.com  回復  更多評論
  

# re: MFC socket程序開發 2011-05-17 11:17 閉環
樓主您好 能不能把完整的代碼發到279676738@qq.com
不勝感激 正在學習中  回復  更多評論
  

# re: MFC socket程序開發[未登錄] 2011-05-19 09:20 小王
你好,能否給我一份,謝謝了,505115063@qq.com  回復  更多評論
  

# re: MFC socket程序開發[未登錄] 2011-05-29 15:25 star
謝謝。。能夠給我發一份啊。。正在系統編程中,找了好久啊。。
623383843@qq.com
  回復  更多評論
  

# re: MFC socket程序開發 2011-11-23 21:50 陳秋明
您好,看了后,感覺寫的很好,但是有些細節有點疑惑,可否也發一份給我,我正在學習網絡編程中!謝謝
郵箱:540284410@qq.com  回復  更多評論
  

# re: MFC socket程序開發[未登錄] 2013-04-10 10:50 lei
您好,這篇文章的完整代碼還有嗎,可否發我有一份,謝謝!416296223@qq.com  回復  更多評論
  

# re: MFC socket程序開發 2013-05-28 10:44 jeansnorth
您好 請問能否給我發一份完整的TCP通信程序呢 我的郵箱是jeansnorth@163.com 不勝感激 本人是新手 看一部分代碼還是不太懂  回復  更多評論
  

# re: MFC socket程序開發[未登錄] 2013-06-10 10:01 Ben
您好,麻煩您也給我發一份好嗎?我的郵箱1324468038@qq.com 謝謝  回復  更多評論
  

# re: MFC socket程序開發 2013-11-18 11:23 Guilty
你好 能給我發一份源代碼嗎 270503325@qq.com 謝謝  回復  更多評論
  

# re: MFC socket程序開發 2015-02-20 16:10 陳晶
@信任
能發一份給我嗎?非常需要,謝謝啦  回復  更多評論
  

# re: MFC socket程序開發 2015-04-03 13:30 linuxsocket
以上代碼都全部發送  回復  更多評論
  

# re: MFC socket程序開發 2015-08-31 16:21 劉培坤
能否發送一份給我,謝謝 郵箱lpkhappy@yeah.net@linuxsocket
  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


敏捷軟件、敏捷企業管理系統 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              国产精品99久久久久久久久| 久久五月天婷婷| 香蕉久久一区二区不卡无毒影院 | 久久先锋资源| 久久夜精品va视频免费观看| 久久影视三级福利片| 久热re这里精品视频在线6| 麻豆精品一区二区av白丝在线| 久久夜色精品国产欧美乱极品| 久久五月激情| 欧美日韩亚洲三区| 国产日韩精品视频一区二区三区| 国产一区在线视频| 亚洲精品久久久久久久久久久久 | 久久久高清一区二区三区| 欧美黄色aa电影| 亚洲一二三四久久| 久久九九久久九九| 欧美日韩免费区域视频在线观看| 国产精品美女在线| 有码中文亚洲精品| 亚洲一区二区欧美日韩| 久久综合色婷婷| 日韩图片一区| 久久精品国产69国产精品亚洲| 欧美黄污视频| 激情五月***国产精品| 一本久道综合久久精品| 久久精品一二三区| 99在线精品视频| 免费的成人av| 国产亚洲精品aa午夜观看| 99re6热只有精品免费观看| 欧美一区二区高清在线观看| 亚洲春色另类小说| 亚洲婷婷综合色高清在线| 美女精品一区| 国内精品美女在线观看| 国产精品99久久99久久久二8 | 亚洲成人中文| 午夜精彩视频在线观看不卡 | 亚洲电影中文字幕| 午夜亚洲精品| 一本色道久久综合狠狠躁篇怎么玩 | 欧美一区二区三区视频| 亚洲乱码视频| 欧美精品亚洲精品| 亚洲国产小视频在线观看| 久久久噜噜噜久久狠狠50岁| 亚洲午夜91| 欧美日韩一区在线播放| 亚洲美女网站| 亚洲日本成人| 欧美精品综合| 一区二区三区波多野结衣在线观看| 欧美va天堂在线| 久久综合狠狠综合久久激情| 一色屋精品视频在线观看网站| 久久久另类综合| 久久人人爽人人爽| 亚洲精美视频| 亚洲日韩欧美视频一区| 欧美精品自拍| 亚洲性图久久| 亚洲一区二三| 国产精品久久久久久久久久久久久久| 一本到高清视频免费精品| 欧美国产日本在线| 亚洲精品久久久久久下一站| 亚洲福利视频三区| 欧美日韩大片| 亚洲欧美成人精品| 午夜精品久久久99热福利| 国产精品v欧美精品v日韩| 亚洲图片欧洲图片av| 99爱精品视频| 国产精品乱看| 久久av资源网站| 久久精品亚洲| 黄色一区二区三区四区| 欧美激情中文字幕乱码免费| 欧美屁股在线| 香蕉免费一区二区三区在线观看| 性欧美1819sex性高清| 亚洲电影免费观看高清完整版在线| 欧美成人中文字幕| 欧美日韩在线精品| 欧美一区二区三区的| 卡通动漫国产精品| 午夜精品久久久久久久| 久久国产一区二区三区| 日韩视频在线一区| 羞羞漫画18久久大片| 亚洲成色999久久网站| 9国产精品视频| 国产午夜亚洲精品理论片色戒| 免费看黄裸体一级大秀欧美| 欧美日韩午夜在线| 久久人人爽人人爽爽久久| 欧美jizzhd精品欧美巨大免费| 亚洲一区二区三区午夜| 欧美专区福利在线| 99国产一区| 久久久久久久综合| 亚洲摸下面视频| 欧美中文在线观看国产| 亚洲欧洲日产国码二区| 午夜在线精品| 亚洲一区尤物| 欧美国产一区二区三区激情无套| 久久都是精品| 欧美系列一区| 亚洲国产婷婷香蕉久久久久久99| 国产色综合天天综合网| 亚洲最黄网站| 亚洲精品一区久久久久久| 午夜精品一区二区三区在线| 免费视频一区二区三区在线观看| 欧美一区2区三区4区公司二百| 欧美日韩国产综合视频在线观看中文| 久久久久一本一区二区青青蜜月| 国产精品扒开腿爽爽爽视频| 欧美大胆人体视频| 永久555www成人免费| 亚洲欧美日韩在线不卡| 亚洲一区二区三区成人在线视频精品| 久久亚洲精品中文字幕冲田杏梨| 欧美一级在线亚洲天堂| 欧美色欧美亚洲高清在线视频| 欧美日韩久久不卡| 欧美在线三区| 欧美猛交免费看| 亚洲国产精品999| 亚洲国产一区二区精品专区| 久久久蜜桃精品| 亚洲国产精品电影| 久久精品在线观看| 老司机精品久久| 国产欧美日韩在线视频| 亚洲欧美综合国产精品一区| 午夜一区二区三区不卡视频| 国产精品s色| 亚洲一区欧美激情| 欧美怡红院视频| 国产无遮挡一区二区三区毛片日本| 亚洲一区二区三区中文字幕在线 | 一区二区三区蜜桃网| 欧美久久九九| 一区二区国产日产| 国产精品一区二区女厕厕| 亚洲一区二区三区777| 欧美一区二区三区免费观看| 国产日产欧产精品推荐色| 亚洲一级黄色| 久久久久国产精品人| 激情亚洲网站| 毛片av中文字幕一区二区| 亚洲欧洲免费视频| 日韩一区二区免费看| 欧美日韩一级片在线观看| 亚洲天堂成人在线观看| 久久久久成人精品| 亚洲国产综合在线看不卡| 欧美电影免费观看大全| 一区二区91| 久久久久久久一区二区三区| 一区二区亚洲欧洲国产日韩| 欧美电影免费观看大全| 亚洲一区二区影院| 久久永久免费| 亚洲精品一线二线三线无人区| 欧美日韩午夜在线视频| 亚洲与欧洲av电影| 亚洲第一页中文字幕| 欧美日韩高清在线| 欧美一区亚洲一区| 亚洲毛片av在线| 久久在精品线影院精品国产| 日韩视频在线免费| 国产日韩欧美一二三区| 欧美肥婆在线| 久久精品亚洲一区二区三区浴池| 亚洲精品亚洲人成人网| 久久男人av资源网站| 亚洲欧美色一区| 日韩亚洲欧美成人一区| 韩国一区电影| 国产精品一级久久久| 欧美精品七区| 久久精品视频亚洲| 在线亚洲激情| 91久久精品一区| 免费看成人av| 久久久亚洲高清| 午夜伦理片一区| 亚洲深夜福利在线| 亚洲狠狠丁香婷婷综合久久久| 亚洲日本欧美日韩高观看| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久综合网|