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

網絡軟件開發

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

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

2008年5月7日 #

     摘要: SkinEngine控件是一組用于優化界面設計可視化控件,它重寫了大部分可視化組件的源代碼,使其外觀更為美觀漂亮,美化了程序界面的設計,使得程序員可以把更多的精力放在系統軟件功能的設計上.
首先從網上下載SkinEngine控件的安裝包,我下載的是3.4.7版本,下載以后發現這個控件的安裝竟然是windows的軟件安裝方式(而不是delphi安裝第三方控件的安裝包方式),安裝后發現系統的程序菜單多了一項SkinEngine
  閱讀全文
posted @ 2008-05-07 01:45 信任 閱讀(1793) | 評論 (0)編輯 收藏

2008年5月3日 #

     摘要: /******************************************************************************
* Copyright (C) 2000 by Robert Hubley. *
* All rights reserved. *
* *
* This software is provided ``AS IS'' and any express or implied *
* warranties, including, but not limited to, the implied warranties of *   閱讀全文
posted @ 2008-05-03 17:26 信任 閱讀(496) | 評論 (0)編輯 收藏

2006年8月5日 #

??? ?? 一直以來都想有自己的即時通訊軟件,所以也一直致力于即時通訊軟件的開發。今天完成的是軟件的兩個界面。拿出來給大家看看,哈哈:)
?? ? 歡迎交流哦。
???? 軟件登錄界面:

???? 軟件登錄成功頁面:
posted @ 2006-08-05 14:19 信任 閱讀(959) | 評論 (5)編輯 收藏

2006年8月4日 #

????? 當我們在網頁上看到關于QQ或是淘寶旺旺的在線連接的時候,點擊那個連接的時候,會判斷你的系統里是否裝了該軟件,如果裝了則彈出聊天窗口;如果沒有安裝則提示你去安裝。
?????? 這個效果用到了 ActiveX控件等。我是用asp和ActiveX實現該功能的,其中也用到了Javascript腳本語言。
posted @ 2006-08-04 11:46 信任 閱讀(863) | 評論 (0)編輯 收藏

2006年7月27日 #

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 @ 2006-07-27 12:05 信任 閱讀(6071) | 評論 (38)編輯 收藏

僅列出標題  
敏捷軟件、敏捷企業管理系統 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美成人午夜激情在线| 久久国内精品视频| 亚洲人成啪啪网站| 欧美美女福利视频| 亚洲欧洲av一区二区| 亚洲欧美日韩国产综合精品二区| 国产日韩欧美综合一区| 免费一级欧美片在线观看| 欧美69wwwcom| 午夜精品美女自拍福到在线| 欧美在线播放高清精品| 亚洲精品久久久久| 亚洲午夜精品网| 有码中文亚洲精品| 在线综合亚洲欧美在线视频| 国产精品婷婷| 欧美国内亚洲| 国产精品乱码人人做人人爱 | 国产欧美日韩另类视频免费观看 | 99精品免费| 性娇小13――14欧美| 亚洲精品美女| 亚洲男女自偷自拍图片另类| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲国产精品毛片| 国产欧美日韩一区| 亚洲精品网址在线观看| 国产一区二区三区在线观看精品| 亚洲国产一区视频| 国内精品久久久久久久影视蜜臀| 亚洲裸体在线观看| 尹人成人综合网| 亚洲午夜视频在线| 99综合在线| 久久亚洲一区| 久久久国产精品一区| 欧美日韩影院| 欧美国产日本| 狠狠综合久久av一区二区小说| 99精品欧美一区二区蜜桃免费| 在线欧美影院| 欧美一级片久久久久久久| 亚洲调教视频在线观看| 欧美成人精品福利| 老司机亚洲精品| 国产婷婷色一区二区三区| 一区二区国产日产| 日韩午夜电影av| 免费在线看一区| 开元免费观看欧美电视剧网站| 国产女优一区| 亚洲欧美日韩国产成人| 亚洲欧美日韩网| 欧美图区在线视频| 99视频一区| 亚洲一区久久| 国产精品v欧美精品v日韩精品| 亚洲人成人一区二区在线观看| 亚洲国产一区二区在线| 久热精品视频在线观看| 美女主播一区| 亚洲电影有码| 欧美激情 亚洲a∨综合| 亚洲国产乱码最新视频| 亚洲人成在线观看一区二区 | 亚洲影院色在线观看免费| 亚洲一区3d动漫同人无遮挡| 国产精品成人v| 一区二区三区四区五区视频 | 亚洲日本国产| 欧美精品一区二| 99国产精品久久| 亚洲欧美文学| 国产在线播精品第三| 久久噜噜噜精品国产亚洲综合| 蜜臀久久99精品久久久久久9 | 黄色免费成人| 免费看黄裸体一级大秀欧美| 亚洲高清久久久| 一区二区三区高清视频在线观看| 欧美性开放视频| 午夜精品理论片| 欧美激情精品久久久久久久变态| 亚洲精选91| 国产精品视频九色porn| 久久精品国产久精国产爱| 亚洲国产成人av在线| 亚洲午夜91| 国内精品久久久久久久影视蜜臀 | 欧美一区亚洲| 亚洲黄色成人| 欧美中文日韩| 亚洲精品久久视频| 国产精品欧美一区二区三区奶水| 欧美亚洲免费高清在线观看| 欧美国产日韩精品| 亚洲欧美激情精品一区二区| 激情欧美日韩| 欧美色视频在线| 久久久精品午夜少妇| 亚洲精品在线视频| 理论片一区二区在线| 夜夜嗨av一区二区三区网站四季av| 国产农村妇女精品一二区| 欧美国产日韩精品| 欧美一区二区精品久久911| 91久久久精品| 浪潮色综合久久天堂| 亚洲一区二区久久| 亚洲人成欧美中文字幕| 国产丝袜一区二区| 国产精品成人一区二区三区夜夜夜 | 亚洲精品在线电影| 免费亚洲网站| 久久久久国产免费免费| 亚洲图片在区色| 亚洲精选视频免费看| 国产综合视频在线观看| 国产精品久久午夜夜伦鲁鲁| 欧美承认网站| 老鸭窝毛片一区二区三区| 亚洲欧美一区在线| 中文成人激情娱乐网| 亚洲精品久久视频| 欧美激情1区2区| 卡一卡二国产精品| 久久久久久97三级| 欧美综合国产精品久久丁香| 亚洲午夜精品久久| 国产精品99久久久久久人| 亚洲精品中文字幕有码专区| 亚洲二区视频在线| 亚洲级视频在线观看免费1级| 国产一区香蕉久久| 国产午夜精品久久久久久免费视 | 久久久久久久久久久一区 | 亚洲国内高清视频| 亚洲黄色在线| 亚洲精品看片| 日韩视频不卡| 宅男在线国产精品| 亚洲一区3d动漫同人无遮挡| 亚洲一区二区在线免费观看视频 | 欧美福利在线| 亚洲激情婷婷| 亚洲伦理在线| 亚洲无线视频| 欧美亚洲三区| 久久久久久伊人| 久久综合免费视频影院| 鲁大师影院一区二区三区| 另类天堂av| 欧美精品国产一区| 国产精品久久久久久久久| 国产精品二区三区四区| 国产农村妇女精品一二区| 国内激情久久| 亚洲国产aⅴ天堂久久| 日韩亚洲不卡在线| 亚洲欧美在线一区二区| 久久久97精品| 亚洲第一在线| 日韩一级裸体免费视频| 亚洲欧美国产制服动漫| 久久久久久久一区二区三区| 免费在线看成人av| 国产精品久久久久影院色老大 | 亚洲欧美精品在线| 久久久久久久久岛国免费| 欧美成人视屏| 国产精品99久久久久久www| 久久福利视频导航| 欧美精品久久久久久久久老牛影院| 欧美色区777第一页| 黄网站色欧美视频| 在线天堂一区av电影| 久久aⅴ乱码一区二区三区| 欧美顶级艳妇交换群宴| 亚洲夜晚福利在线观看| 免费成人黄色片| 国产精品久久午夜夜伦鲁鲁| 亚洲第一久久影院| 亚洲综合色在线| 欧美激情第9页| 亚洲欧美精品中文字幕在线| 另类亚洲自拍| 国产亚洲人成a一在线v站| 亚洲免费播放| 免费成人网www| 亚洲性视频网址| 欧美精品在线观看91| 黄色亚洲网站| 亚洲女人小视频在线观看| 亚洲国产成人91精品| 久久狠狠亚洲综合| 国产区欧美区日韩区| 亚洲图中文字幕| 亚洲国产精品嫩草影院| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品h在线观看|