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

斜樹的空間

集中精力,放棄一切的去做一件事情,只要盡力了,即使失敗了,你也不會后悔!

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

#

使用協議UDP,僅實現簡單的連接功能:

服務端:
#pragma   comment(lib,   "ws2_32.lib ")

#include <winsock2.h>
#include <stdio.h>

int main()
{
 SOCKET socket1;
 WSADATA wsaData;


 int iErrorcode;
 if(WSAStartup(MAKEWORD(2,2), &wsaData))
 {
  printf("Winsock can not be init!");
  WSACleanup();
  return 0;
 }

 printf("server begin to create socket!\n");
 //struct sockaddr_in local;
 //struct sockaddr_in from;
 sockaddr_in local;
 sockaddr_in from;

 int fromlen = sizeof(from);

 local.sin_addr.s_addr = INADDR_ANY;
 local.sin_family =  AF_INET;
 local.sin_port = htons(5566);

 socket1 = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 bind(socket1, (struct sockaddr *)&local, fromlen);
 
 while(1)
 {
  char buffer[1024] = "\0";

  printf("waiting message form client:");

  if(SOCKET_ERROR != recvfrom(socket1,
   buffer, sizeof(buffer), 0,
   (struct sockaddr *)&from, &fromlen))
  {
   if(strcmp(buffer, "bye") == 0)
   {
    printf("client quit!\n");
    break;
   }
   printf("recieve message form %s -- %s \n",
    inet_ntoa(from.sin_addr), buffer);
   sendto(socket1, buffer, sizeof(buffer),
    0, (struct sockaddr *)&from, fromlen);
  }
  
 }
 closesocket(socket1);

 return 0;
}

客戶端:
#pragma   comment(lib,   "ws2_32.lib ")

#include <winsock2.h>
#include <stdio.h>

int main()
{
 SOCKET socket1;
 WSADATA wsaData;

 if(WSAStartup(MAKEWORD(2,2), &wsaData))
 {
  printf("can not init !\n");
  WSACleanup();
  return 0;
 }
 
 printf("client begin to create socket!\n");
 struct sockaddr_in server;
 int len = sizeof(server);

 server.sin_addr.s_addr = inet_addr("127.0.0.1");
 server.sin_port = htons(5566);
 server.sin_family = AF_INET;

 socket1 = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP );
 
 while(1)
 {
  char buffer[1024] = "\0";
  printf("input message: ");
  scanf("%s", buffer);
  if(strcmp(buffer, "bye") == 0)
  {
   sendto(socket1, "bye", 3 * sizeof(char), 0,
    (struct sockaddr *)&server, len);
   printf("exit!\n");
   Sleep(100);
   closesocket(socket1);
   break;
  }
  
  if(SOCKET_ERROR != sendto(socket1, buffer, sizeof(buffer),
   0, (sockaddr *)&server, len))
  {
   Sleep(100);
   if(recvfrom(socket1, buffer, sizeof(buffer), 0, (struct sockaddr *)&server, &len) != SOCKET_ERROR)
   {
    printf("recieve from server : %s \n", buffer);
   }
  }
  
 }
 closesocket(socket1);

 return 0;
}

posted @ 2010-05-15 21:12 張貴川 閱讀(688) | 評論 (0)編輯 收藏

今早配置MYSQL,在WIN7中配置了一個早上,老是報1045的錯誤,說是MYSQL在WINDOWS中一直存在的錯誤,查了N多資料也不行,又不想重裝。
看到一個解釋是這樣的:

該錯誤只在Windows系統上出現,Linux下好像好沒有,據說這個錯誤已經存在n年了,有人extremely dispointedin  that it still exists here 2009!

錯誤的原因更令人抓狂,那就是mysql server instance config wizard根本沒有為你設密碼,于是root密碼是空!實在不明白如果沒有為我設密碼那中間為什么叫我設個密碼。


但他的方法我試了也沒用。
問題還真的是千奇百怪。
最后沒辦法點開instance config wizard 從頭來一遍,先把原來的配置卸載了,然后重新配置。最后竟然不報1045的錯誤了。網上很多都說要重裝才能解決問題,我看這方法和重裝沒啥區別,但比重裝省時間。
真的是暈,看來要深入了解MYSQL的結構才能解釋為什么了,初玩姑且就算一種解決1045方法吧!

posted @ 2010-05-08 10:56 張貴川 閱讀(123) | 評論 (0)編輯 收藏

在  項目------添加類-----mfc------active x控件的MFC類----
后面自己就知道怎么做了

posted @ 2010-05-04 19:06 張貴川 閱讀(1328) | 評論 (0)編輯 收藏

   全局變量的定義:
在MFC的框架中有個全局變量:
CTestApp theApp;
theApp是在進入WinMain函數之前就構造好值的。
所以可以進入WinMain函數之前是先執行theApp的構造函數。
孫鑫老師說MFC是通過應用程序類的對象來標識應用程序的實例的(這句話不明白,應該都是hInstance標識的吧,也許要等到我看侯捷老師書的時候才知道了),且每個MFC程序有且僅有一個從CWinApp派生的類。也僅有一個CWinApp派生類的對象,即僅有一個theApp對象。theApp對象就標識了應用程序本身。
即theApp是統領其它類的。
并且CWinApp類是派生于CWinThread類的,
There are two general types of threads that CWinThread supports: worker threads and user-interface threads. Worker threads have no message pump: for example, a thread that performs background calculations in a spreadsheet application. User-interface threads have a message pump and process messages received from the system. CWinApp and classes derived from it are examples of user-interface threads. Other user-interface threads can also be derived directly from CWinThread.

MSDN中還提供了一些額外的操作全局信息的函數:

  • AfxGetApp   Obtains a pointer to the CWinApp object.

  • AfxGetInstanceHandle   Obtains a handle to the current application instance.

  • AfxGetResourceHandle   Obtains a handle to the application's resources.

  • AfxGetAppName   Obtains a pointer to a string containing the application's name. Alternately, if you have a pointer to the CWinApp object, use m_pszExeName to get the application's name.

    看看MFC中的 main()函數:
    extern "C" int WINAPI
    _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
     _In_ LPTSTR lpCmdLine, int nCmdShow)
    #pragma warning(suppress: 4985)
    {
     // call shared/exported WinMain
     return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
    }

  • posted @ 2010-05-01 20:59 張貴川 閱讀(441) | 評論 (1)編輯 收藏

    晚上搞了半天才發現:原來類模板不能分文件寫!
    如:
    template <class Type>
    class TNumber
    {
    public:
     ~TNumber()
     {
     }

     void SetItem(Type);
     Type GetItem();
    private:
     Type m_item;
    };

    寫到casual.h中f。而實現文件寫入casual.cpp中,那么在main文件中調用時就會提示外部命令無法解析的錯誤。
    如:
    1>main.obj : error LNK2019: 無法解析的外部符號 "public: int __thiscall TNumber<int>::GetItem(void)" (?GetItem@?$TNumber@H@@QAEHXZ),該符號在函數 _main 中被引用

    看到一個解釋是:
    因為模板類在編譯的時候就相當于宏定義,分兩個文件是找不到的。

    解決辦法可以:
    1.類模板定義和實現在同一文件。
    2.在main文件中連續包含定義文件和實現文件.
    #include "casual.h"
    #include "casual.cpp"

    int main()
    {

     TNumber<int> obj1;

     cout << obj1.GetItem() << endl;

       return 0;
    }

    posted @ 2010-04-22 01:01 張貴川 閱讀(2790) | 評論 (7)編輯 收藏

    先解釋const 的記憶問題:
    比如: 
    type  const * p;  
     * p 是表示對象, const 修飾 *p ,  就表示常對象。即 *p  對象不可改變。 所以  p  不是 常指針,是指向常量的指針。
    相對于:const type * const * p; 的寫法,個人推薦前一種。

    而:
    type  * const p;
    const 修飾 p, 所以 p  是常量,而* const p 即代表指針常量.   p 是常指針。


    所以
     int * & func(C &oC)
     {
      return oC.m_p;
     }
    表示返回指針的引用

    但沒有:
     int & * func(C &oC)
     {
      return oC.m_p;
     }

    編譯器會把 int & *  中的 & 看作取地址符號。
    如果要對  int  型變量進行應用,為沒必要這樣
    可以這樣寫:
     int  & func(C &oC)
     {
      return  *oC.m_p;
     }

    同樣記憶:
    常引用對象: type const & Ref ;
    還要注意const 修飾函數只能是  類成員函數,而不能是全局函數

    posted @ 2010-04-16 20:49 張貴川 閱讀(273) | 評論 (0)編輯 收藏

    class CBase
    {
    public:
     CBase(int iNum) : m_iNumber(iNum)
     {

     }
     CBase(CBase & oBase)
     {
      
     }
    protected:
     int m_iNumber;
    };
    class B : public CBase
    {
    public:
     B(int iNum, int iNum2) : CBase(iNum), m_iNumber2(iNum2)
     {
     }
     
     B(B & oB) : CBase(oB.m_iNumber)
     {
      m_iNumber2 = oB.m_iNumber2;
     }

     void show()
     {
      cout << m_iNumber <<  "  " << m_iNumber2 << endl;
     }

    private:
     int m_iNumber2;
    };

    如果沒有 B中的 拷貝構造函數   B(B & oB) : CBase(oB.m_iNumber) 后面的初始化CBase(oB.m_iNumber)則會報這樣的錯誤:
     error C2512: “CBase”: 沒有合適的默認構造函數可用

    當然以下這樣初始化更符合 都是  拷貝構造函數的邏輯:
    B(B & oB) : CBase(&oB) 


    posted @ 2010-04-16 20:08 張貴川 閱讀(1398) | 評論 (0)編輯 收藏

    僅列出標題
    共5頁: 1 2 3 4 5 
    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产美女精品久久久久∴| 久久久噜噜噜久噜久久| 欧美成年人视频网站欧美| 欧美在线观看你懂的| 国产日韩在线视频| 久久大综合网| 欧美一区二区三区在线| 韩日欧美一区| 亚洲国产另类精品专区| 欧美黄色视屏| 亚洲综合丁香| 久久久国产精品一区| 亚洲精品自在在线观看| 日韩系列在线| 国产欧美精品xxxx另类| 久久午夜av| 欧美日本韩国一区| 欧美一区在线视频| 老司机一区二区三区| 一本色道久久加勒比88综合| 亚洲综合视频网| 亚洲国产成人精品女人久久久 | 国产手机视频精品| 久久香蕉精品| 欧美激情在线| 欧美在线观看一二区| 久色婷婷小香蕉久久| 亚洲一区二区三区精品在线观看| 亚洲欧美视频在线观看视频| ●精品国产综合乱码久久久久| 亚洲精品孕妇| 极品少妇一区二区三区| 亚洲三级电影全部在线观看高清| 国产精品最新自拍| 亚洲娇小video精品| 国产欧美亚洲一区| 一本久道久久综合中文字幕| 国产一区二区三区自拍| 亚洲免费成人| 91久久国产精品91久久性色| 亚洲午夜av| 亚洲另类春色国产| 久久免费国产精品| 欧美一区日本一区韩国一区| 欧美另类综合| 欧美成人dvd在线视频| 国产精品天天看| 亚洲国产婷婷香蕉久久久久久99| 国产永久精品大片wwwapp| 一本综合久久| 亚洲免费av电影| 猫咪成人在线观看| 麻豆av一区二区三区久久| 国产亚洲欧美一区二区三区| 亚洲网站在线观看| 在线综合亚洲欧美在线视频| 免费看亚洲片| 欧美成人嫩草网站| 亚洲国产精品一区在线观看不卡 | 欧美黄色小视频| 国内精品免费午夜毛片| 西瓜成人精品人成网站| 欧美亚洲综合网| 国产精品电影观看| 在线视频欧美日韩| 亚洲天堂偷拍| 欧美亚日韩国产aⅴ精品中极品| 亚洲黄色在线看| 99精品视频免费观看视频| 嫩草国产精品入口| 亚洲国产精品美女| 最新成人av在线| 欧美国产第一页| 亚洲国产精品v| 日韩午夜免费| 欧美日韩一区二区欧美激情| 99视频超级精品| 亚洲欧美综合国产精品一区| 国产精品视频免费| 久久riav二区三区| 免费中文日韩| 亚洲精品欧洲精品| 欧美视频日韩视频| 亚洲欧美国产精品专区久久| 欧美主播一区二区三区美女 久久精品人 | 久久久精品国产免大香伊| 米奇777在线欧美播放| 亚洲国产日韩在线一区模特| 欧美日本韩国| 亚洲欧美日韩国产综合精品二区| 欧美一区二区三区久久精品茉莉花| 国产精品永久在线| 噜噜噜躁狠狠躁狠狠精品视频| 欧美好骚综合网| 亚洲一区bb| 国产欧美精品va在线观看| 久久久噜噜噜久噜久久 | 免费精品视频| 夜夜嗨av一区二区三区四季av| 欧美性色视频在线| 久久久久久久网| 99热在线精品观看| 久久久噜噜噜| 亚洲性视频网站| 国产专区一区| 欧美精品一区在线观看| 亚洲欧美一区二区三区在线| 男女av一区三区二区色多| 一区二区三区四区五区在线| 国产亚洲电影| 欧美日韩午夜剧场| 卡通动漫国产精品| 亚洲制服av| 91久久午夜| 久色婷婷小香蕉久久| 亚洲视频在线观看网站| 一区在线观看视频| 国产精品v欧美精品v日韩精品| 久久综合久久综合久久综合| 亚洲欧美电影院| 99国产精品| 亚洲二区视频| 久久免费精品视频| 午夜精品久久久久久久99水蜜桃| 亚洲电影免费观看高清完整版在线 | 欧美福利一区二区| 久久精品国产99精品国产亚洲性色| 99riav久久精品riav| 欧美 日韩 国产在线 | 黄色工厂这里只有精品| 国产精品国产自产拍高清av王其 | 亚洲一区一卡| 日韩午夜三级在线| 亚洲日本中文字幕免费在线不卡| 美国十次了思思久久精品导航| 亚洲欧美日本国产专区一区| 夜夜嗨av色一区二区不卡| 亚洲国产mv| 亚洲国产精品久久久久婷婷老年 | 亚洲欧洲在线视频| 亚洲黄色在线观看| 亚洲韩国青草视频| 亚洲国产一区二区精品专区| 在线播放中文一区| 在线日韩av片| 亚洲高清资源| 亚洲日韩欧美视频| 日韩午夜电影| 亚洲视频视频在线| 亚洲尤物在线| 亚洲欧美日韩中文播放| 亚洲欧美区自拍先锋| 午夜精品偷拍| 久久xxxx精品视频| 久久久久久伊人| 久久综合色影院| 欧美激情精品久久久久久黑人| 欧美激情自拍| 99国产精品99久久久久久粉嫩| 日韩视频精品在线观看| 亚洲无线一线二线三线区别av| 亚洲自拍偷拍福利| 久久久久.com| 欧美成人免费全部| 欧美日韩中文字幕精品| 国产精品久久一区二区三区| 国产精品久久久久aaaa| 国产视频综合在线| 91久久极品少妇xxxxⅹ软件| 日韩午夜三级在线| 欧美一级理论片| 美女诱惑一区| 亚洲乱码一区二区| 亚洲永久免费观看| 久久午夜色播影院免费高清| 欧美激情在线观看| 国产毛片一区| 亚洲黄网站在线观看| 亚洲制服丝袜在线| 久久久在线视频| 亚洲精品久久久久| 欧美在线免费观看| 欧美激情自拍| 国产日韩视频一区二区三区| 亚洲精品国产精品国产自| 午夜欧美精品久久久久久久| 免费成人av在线| 一本一本a久久| 另类图片综合电影| 国产伦精品一区二区三区四区免费 | 国产精品久久看| 亚洲国内精品在线| 久久激情五月婷婷| 日韩一级在线观看| 麻豆国产精品va在线观看不卡| 欧美性淫爽ww久久久久无| 亚洲国产欧美一区二区三区同亚洲| 亚洲在线中文字幕| 91久久精品www人人做人人爽 | 亚洲一区二三|