有容乃大 无欲则刚

C++博客 首页 新随笔 联系 聚合 管理
  10 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

2009年7月22日 #

#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested
=MAKEWORD(1,1); 

    err 
= WSAStartup(wVersionRequested, &wsaData); 
    
if (err != 0
    


        
return
    }
 

    
if (LOBYTE(wsaData.wVersion)!=1 || 
        HIBYTE(wsaData.wVersion)
!=1
    

        WSACleanup(); 
        
return
    }
 

    SOCKET sockSrv
=socket(AF_INET,SOCK_DGRAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY);
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);

    bind(sockSrv,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));

    
char recvBuf[100];
    
char sendBuf[100];
    
char tempBuf[200];

    SOCKADDR_IN addrClient;
    
int len=sizeof(SOCKADDR);

    
while(1)
    
{
        recvfrom(sockSrv,recvBuf,
100,0,(SOCKADDR*)&addrClient,&len);
        
if('q'==recvBuf[0])
        
{
            sendto(sockSrv,
"q",strlen("q")+1,0,(SOCKADDR*)&addrClient,len);
            printf(
"Chat end!%n");
            
break;
        }

        sprintf(tempBuf,
"%s say:%s",inet_ntoa(addrClient.sin_addr),recvBuf);
        printf(
"%s\n",tempBuf);
        printf(
"Please input data:\n");
        gets(sendBuf);
        sendto(sockSrv,sendBuf,strlen(sendBuf)
+1,0,(SOCKADDR*)&addrClient,len);
    }

    closesocket(sockSrv);
    WSACleanup();
}


#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested
=MAKEWORD(1,1); 

    err 
= WSAStartup(wVersionRequested, &wsaData); 
    
if (err != 0
    


        
return
    }
 

    
if (LOBYTE(wsaData.wVersion)!=1 || 
        HIBYTE(wsaData.wVersion)
!=1
    

        WSACleanup(); 
        
return
    }
 
    
    SOCKET sockClient
=socket(AF_INET, SOCK_DGRAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=inet_addr("127.0.0.1");
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);
     
char recvBuf[100];
     
char sendBuf[100];
     
char tempBuf[200];

     
int len=sizeof(SOCKADDR);

     
while(1)
     
{
         printf(
"please input data:\n");
         gets(sendBuf);
         sendto(sockClient,sendBuf,strlen(sendBuf)
+1,0,
             (SOCKADDR
*)&addrSrv,len);
         recvfrom(sockClient,recvBuf,
100,0,(SOCKADDR*)&addrSrv,&len);
         
if('q'==recvBuf[0])
         
{
             sendto(sockClient,
"q",strlen("q")+1,0,
                 (SOCKADDR
*)&addrSrv,len);
             printf(
"Chat end!\n");
             
break;
         }

         sprintf(tempBuf,
"%s say:%s",inet_ntoa(addrSrv.sin_addr),recvBuf);
         printf(
"%s\n",tempBuf);
     }

     closesocket(sockClient);
     WSACleanup();
}
posted @ 2009-07-22 00:07 huyvanpull 阅读(242) | 评论 (0)编辑 收藏

2009年7月21日 #

#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested 
= MAKEWORD( 11 ); 

    err 
= WSAStartup( wVersionRequested, &wsaData ); 
    
if ( err != 0 ) 

        
return
    }
 

    
if ( LOBYTE( wsaData.wVersion ) != 1 || 
        HIBYTE( wsaData.wVersion ) 
!= 1
            WSACleanup( ); 
            
return
    }
 
    SOCKET socksrv
=socket(AF_INET,SOCK_STREAM,0); 

    SOCKADDR_IN addrsrv; 
    addrsrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY); 
    addrsrv.sin_family
=AF_INET; 
    addrsrv.sin_port
=htons(4444); 

    bind(socksrv,(sockaddr
*)&addrsrv,sizeof(SOCKADDR)); 

    listen(socksrv,
5); 

    SOCKADDR_IN addrclient; 
    
int len=sizeof(SOCKADDR); 

    
while(1
    

        SOCKET sockconn
=accept(socksrv,(SOCKADDR*)&addrclient,&len); 
        
char sendbuf[100]; 
        sprintf(sendbuf,
"welcome %s to TCP server",inet_ntoa(addrclient.sin_addr)); 
        send(sockconn,sendbuf,strlen(sendbuf)
+1,0); 
        
char recvbuf[100]; 
        recv(sockconn,recvbuf,
100,0); 
        printf(
"%s\n",recvbuf); 
        closesocket(sockconn); 

    }
 

}



#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")


void main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    
int err;

    wVersionRequested 
= MAKEWORD(11);

    err 
= WSAStartup( wVersionRequested, &wsaData );
    
if ( err != 0 ) 
    
{
        
return;
    }


    
/* 判断是否是得到的版本 */
    
if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) 
!= 1 ) 
    
{
            
/* 终止作用 */
            WSACleanup( );
            
return
    }

    SOCKET sockClient
=socket(AF_INET,SOCK_STREAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=inet_addr("127.0.0.1");
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(4444);
    connect(sockClient,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));
    
char recvBuf[100];
    recv(sockClient,recvBuf,
100,0);
    printf(
"%s\n",recvBuf);
    send(sockClient,
"this is huyvanull's client",strlen("this is huyvanull's client")+1,0);
    
    closesocket(sockClient);
    WSACleanup();
}
posted @ 2009-07-21 20:16 huyvanpull 阅读(1960) | 评论 (0)编辑 收藏

#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested
=MAKEWORD(1,1); 

    err 
= WSAStartup(wVersionRequested, &wsaData); 
    
if (err != 0
    


        
return
    }
 

    
if (LOBYTE(wsaData.wVersion)!=1 || 
        HIBYTE(wsaData.wVersion)
!=1
    

        WSACleanup(); 
        
return
    }
 

    SOCKET sockSrv
=socket(AF_INET,SOCK_DGRAM,0);
    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY);
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);

    bind(sockSrv,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));

    SOCKADDR_IN addrClient;
    
int len=sizeof(SOCKADDR);
    
char recvBuf[100];

    recvfrom(sockSrv,recvBuf,
100,0,(SOCKADDR*)&addrClient,&len);
    printf(
"%s\n",recvBuf);
    closesocket(sockSrv);
    WSACleanup();
}


#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")

void main() 

    WORD wVersionRequested; 
    WSADATA wsaData; 
    
int err; 

    wVersionRequested
=MAKEWORD(1,1); 

    err 
= WSAStartup(wVersionRequested, &wsaData); 
    
if (err != 0
    


        
return
    }
 

    
if (LOBYTE(wsaData.wVersion)!=1 || 
        HIBYTE(wsaData.wVersion)
!=1
    

        WSACleanup(); 
        
return
    }

    SOCKET sockClient
=socket(AF_INET,SOCK_DGRAM,0);
    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=inet_addr("127.0.0.1");
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);

    sendto(sockClient,
"Hello",strlen("Hello")+1,0,
        (SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));
    closesocket(sockClient);
    WSACleanup();
}
posted @ 2009-07-21 20:14 huyvanpull 阅读(2273) | 评论 (1)编辑 收藏

2009年7月16日 #

#include <Winsock2.h>
#include 
<stdio.h>
#pragma comment(lib,
"ws2_32.lib")


void main()
{
    WORD wVersionRequested;
    WSADATA wsaData;
    
int err;

    wVersionRequested 
= MAKEWORD(11);

    err 
= WSAStartup( wVersionRequested, &wsaData );
    
if ( err != 0 ) 
    
{
        
return;
    }


    
/* 判断是否是得到的版本 */
    
if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) 
!= 1 ) 
    
{
            
/* 终止作用 */
            WSACleanup( );
            
return
    }


    
/* 创建套接字 */
    SOCKET sockSrv
=(AF_INET,SOCK_STREAM,0);

    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY);
    addrSrv.sin_family
=AF_INET;
    addrSrv.sin_port
=htons(6000);

    bind(sockSrv,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));
    listen(sockSrv,
5);

    SOCKADDR_IN addrClient;
    
int len=sizeof(SOCKADDR);

    
while(1)
    
{
        SOCKET sockConn
=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
        
char sendBuf[100];
        sprintf(sendBuf,
"Welcome %s to hhtp://www.sunxin.org",inet_ntoa(addrClient.sin_addr));
        send(sockConn,sendBuf, strlen(sendBuf)
+1,0);
        
char recvBuf[100];
        recv(sockConn,recvBuf,
100,0);
        printf(
"%s\n",recvBuf);

    }


}
posted @ 2009-07-16 22:50 huyvanpull 阅读(225) | 评论 (0)编辑 收藏

2009年7月9日 #

class CMyApp:public CWinApp
{
public:
    
virtual BOOL InitInstance();
}
;

class CMainWindow:public CFrameWnd
{
public:
    CMainWindow();
protected:
    afx_msg 
void OnPaint();
    DECLARE_MESSAGE_MAP()
}
;


#include <afxwin.h>
#include 
"Hello.h"
CMyApp myAPP;

BOOL CMyApp::InitInstance()
{
    m_pMainWnd 
= new CMainWindow;
       m_pMainWnd->SetIcon(LoadIcon(IDI_ICON1),TRUE);
    m_pMainWnd
->ShowWindow(m_nCmdShow);
    m_pMainWnd
->UpdateWindow();
    
return TRUE;
}


BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
    ON_WM_PAINT()
END_MESSAGE_MAP()

CMainWindow::CMainWindow()
{
    Create(NULL,_T(
"aaa"));
}


void CMainWindow::OnPaint()
{
    CPaintDC dc(
this);
    CRect rect;
    GetClientRect(
&rect);
    dc.DrawText(_T(
"ad"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
}


Project Setting
General
Use of MFC 选择 Use MFC in a Shared DLL
posted @ 2009-07-09 23:14 huyvanpull 阅读(212) | 评论 (0)编辑 收藏

2009年6月29日 #

#include <iostream>
using namespace std;
void main()
{
    cout 
<< "hello world!";
    
int index;
    cin 
>> index;
}

注意,<iostream.h>是c风格的,要么是:
#include <iostream>
using namespace std;

要么是:
#include <iostream.h>
这时是不能用using namespace std;这句话的,否则会出现你遇到的问题:
fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or directory


在标准C++里面,是不用#include <iostream.h>这种形式了,而要使用#include <iostream>
在VC6是在C++标准出来前发布的,所以它可以使用#include <iostream.h>这形式.
posted @ 2009-06-29 19:42 huyvanpull 阅读(759) | 评论 (0)编辑 收藏

2009年6月21日 #

void CTestDlg::OnBnClickedBtnAdd()
{
    
// TODO: 在此添加控件通知处理程序代码
    /*
    if(m_blsCreate == FALSE)
    {
        m_btn.Create(_T("Huyvanpull"),BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
            CRect(0,0,100,100),this,123);
        m_blsCreate=TRUE;
    }
    else
    {
        m_btn.DestroyWindow();
        m_blsCreate=FALSE;
    }
    
*/


    
/*
    int num1, num2, num3;
    char ch1[10],ch2[10],ch3[10];

    GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)(LPCTSTR)ch1,10);
    GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)(LPCTSTR)ch2,10);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);
    GetDlgItem(IDC_EDIT3)->SetWindowText((LPTSTR)(LPCTSTR)ch3);
    
*/


    
/*
    int num1, num2, num3;
    char ch1[10],ch2[10],ch3[10];

    GetDlgItemText(IDC_EDIT1,(LPTSTR)(LPCTSTR)ch1,10);
    GetDlgItemText(IDC_EDIT2,(LPTSTR)(LPCTSTR)ch2,10);
    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);
    SetDlgItemText(IDC_EDIT3,(LPTSTR)(LPCTSTR)ch3);
    
*/


    
/*
    int num1, num2, num3;
    num1=GetDlgItemInt(IDC_EDIT1);
    num2=GetDlgItemInt(IDC_EDIT2);
    num3=num1+num2;
    SetDlgItemInt(IDC_EDIT3,num3);
    
*/


    
/*
    //默认为真,指示数据正在被获取 
    UpdateData();
    m_num3=m_num1+m_num2;
    //设置成假,指示数据正在被初始化
    UpdateData(FALSE);
    
*/


    
/*
    int num1=0, num2=0, num3=0;
    TCHAR ch1[10],ch2[10],ch3[10];

    m_edit1.GetWindowText(ch1,10);
    m_edit2.GetWindowText(ch2,10);
    
    num1=_ttoi(ch1); 
    num2=_ttoi(ch2); 
    num3=num1+num2;
    _itot(num3,ch3,10); 

    //CString h;   
    //int a=_ttoi(h);  
    //CString h;   
    // h.Format(_T("%d"),num3); 
    m_edit3.SetWindowText(ch3);
    
*/


    
//GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
    /*
    int num1=0, num2=0, num3=0;
    TCHAR ch1[10],ch2[10],ch3[10];
    m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
    m_edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);

    num1=_ttoi(ch1); 
    num2=_ttoi(ch2); 
    num3=num1+num2;
    _itot(num3,ch3,10); 

    m_edit3.SendMessage(WM_SETTEXT,10,(LPARAM)ch3);
    
*/

    
int num1=0, num2=0, num3=0;
    TCHAR ch1[
10],ch2[10],ch3[10];
    SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,
10,(LPARAM)ch1);
    SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,
10,(LPARAM)ch2);

    num1
=_ttoi(ch1); 
    num2
=_ttoi(ch2); 
    num3
=num1+num2;
    _itot(num3,ch3,
10); 

    SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,
10,(LPARAM)ch3);
}
posted @ 2009-06-21 16:06 huyvanpull 阅读(209) | 评论 (0)编辑 收藏

2009年6月20日 #

1.标准消息
除WM_COMMAND之外,所有以WM_开头的消息.从CMnc派生的类,都可以接收此类消息.

2. 命令消息
来自菜单,加速键或工具栏、加速或工具栏按键。这类消息都以WM—COOMMAND呈现.在MFC中,通过菜单项标识(ID)来区分不同的命令消息.在SDK中,通过消息的wParam 参数识别.

3.通告消息
由控件产生的消息,例如,按钮的单点击,列表框的选择均产生些类消息.为的是向其父窗口(通常是对话框)通知事件的发生,这类消息也是是WM_COMMAND形式呈现.从CCmdTarget派生的类,都可以接收到这类消息.
posted @ 2009-06-20 20:22 huyvanpull 阅读(158) | 评论 (0)编辑 收藏

2009年6月18日 #

CTRL+L              删除整行
CTRL+U             变小写
CTRL+SHIFT+U变大写
posted @ 2009-06-18 23:52 huyvanpull 阅读(109) | 评论 (0)编辑 收藏

1. HDC
    HDC是指窗体,控件的句柄,是长整类型.
    这是windows编程里很重要的一个类型,它唯一标识了一个对象.比如窗口,按钮,视图等,也就是一个代号.
    另外它和C++没有什么直接的关系,HDC是windows系统API中定义的一个数据类型.
    注意,GetDC()得到的句柄必须用ReleaseDC()函数释放!而用Create建立的句柄必须用DeleteDC()释放.

2. BOOL  MoveToEx(HDC hdc, int x,int y,LPPOINT lppt).
    hdc是当前设备的句柄.
    xX轴的位置,水平方向,一般原点是在屏幕左上角的位置.
    yY轴的位置,垂直方向.
    lppt是移动前的坐标位置.

3.BOOL WINAPI LineTo(HDC hdc, int x, int y);
    hdc是当前设备的句柄.
   xX轴的位置,水平方向,一般原点是在屏幕左上角的位置.
   yY轴的位置,垂直方向.

// CDrawView 消息处理程序
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
    
// TODO: 在此添加消息处理程序代码和/或调用默认值
    m_ptOrigin=point;
    CView::OnLButtonDown(nFlags, point);
}


void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
    
/*********************************************
    HDC hdc;
    hdc=::GetDC(m_hWnd);
    MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
    LineTo(hdc,point.x,point.y);
    ::ReleaseDC(m_hWnd,hdc);
    CView::OnLButtonUp(nFlags, point);
    *********************************************
*/


    
/*********************************************
    CDC *pDC=GetDC();
    pDC->MoveTo(m_ptOrigin);
    pDC->LineTo(point);
    ReleaseDC(pDC);
    CView::OnLButtonUp(nFlags, point);
    *********************************************
*/


    
/*********************************************
    CClientDC dc(this);
    //CClientDC dc(GetParent());
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);
    CView::OnLButtonUp(nFlags, point);
    *********************************************
*/


    
/*********************************************
    CWindowDC dc(GetDesktopWindow());
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);
    CView::OnLButtonUp(nFlags, point);
    *********************************************
*/


    
/*********************************************
    CPen pen(PS_DOT,1,RGB(20,255,0));
    CClientDC dc(this);
    //把画笔选入设备描述表
    CPen *pOldPen=dc.SelectObject(&pen);
    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);
    dc.SelectObject(pOldPen);
    CView::OnLButtonUp(nFlags, point);
    *********************************************
*/

    
    
/*********************************************
    CBitmap bitmap;
    bitmap.LoadMappedBitmap(IDR_AA1);
    CBrush brush(&bitmap);
    CClientDC dc(this);
    dc.FillRect(CRect(m_ptOrigin,point),&brush);
    CView::OnLButtonUp(nFlags, point);
    *********************************************
*/


    CClientDC dc(
this);
    CBrush 
*pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
    CBrush 
*pOldBrush=dc.SelectObject(pBrush);
    dc.Rectangle(CRect(m_ptOrigin,point));
    dc.SelectObject(pOldBrush);
    CView::OnLButtonUp(nFlags, point);
}

posted @ 2009-06-18 21:55 huyvanpull 阅读(187) | 评论 (0)编辑 收藏

仅列出标题