【VC++】socket程序

#include "stdafx.h"
#include
<windows.h>
#include
<windowsx.h>
#include
"resource.h"
#include "MainDlg.h"
#include <winsock2.h>
/*
Template
designed by RuPeng.com. Please
visit http://www.rupeng.com for
more information
如鵬網
(http://www.rupeng.com)大學生
計算機學習社區,提供大量免費視頻學
習教程,提供個性化一對一學習指導
*/
BOOL WINAPI Main_Proc(HWND
hWnd, UINT uMsg, WPARAM
wParam, LPARAM lParam)
{
      
switch(uMsg)
    {
          
HANDLE_MSG(hWnd,
WM_INITDIALOG,
Main_OnInitDialog);
          
HANDLE_MSG(hWnd,
WM_COMMAND,
Main_OnCommand);
          
HANDLE_MSG(hWnd,WM_CLOSE,
Main_OnClose);
    }
    return FALSE;
}
BOOL Main_OnInitDialog(HWND
hwnd, HWND hwndFocus, LPARAM
lParam)
{
    return TRUE;
}
void ShowError()
{
    TCHAR* lpMsgBuf;
    FormatMessage
(FORMAT_MESSAGE_ALLOCATE_BU
FFER|
FORMAT_MESSAGE_FROM_SYSTE
M,NULL,GetLastError
(),MAKELANGID
(LANG_NEUTRAL,SUBLANG_DEFAU
LT),(LPTSTR)&lpMsgBuf,0,NULL);
      
        MessageBox
(NULL,lpMsgBuf,"",MB_ICONERROR
);
}
void SocketTest()
{
//  LoadLibrary
("libwsock32.dll");
    WSADATA wsaData;//初
始化socket庫
    WSAStartup
(MAKEWORD(2,0),&wsaData);
    SOCKET sock=socket
(AF_INET,SOCK_STREAM,IPPROTO_
TCP);
    SOCKADDR_IN sa;
    sa.sin_family=AF_INET;
    sa.sin_port=htons
(IPPORT_SMTP);
      
sa.sin_addr.S_un.S_addr=inet_addr
("123.125.50.135");
      
    if(connect(sock,
(SOCKADDR *)&sa,sizeof(sa))
==SOCKET_ERROR)
    {
        ShowError();
        return;
    }
    TCHAR buff[256];
    ZeroMemory(buff,sizeof
(buff)/sizeof(TCHAR));
    recv(sock,buff,sizeof
(buff)/sizeof(TCHAR),0);
    MessageBox
(NULL,buff,TEXT("dfdf"),MB_OK);
    TCHAR hello[]="Quit\n";
    send(sock,hello,sizeof
(hello)/sizeof(TCHAR),0);
    ZeroMemory(buff,sizeof
(buff)/sizeof(TCHAR));
    recv(sock,buff,sizeof
(buff)/sizeof(TCHAR),0);
    MessageBox
(NULL,buff,TEXT("dfdf"),MB_OK);
    closesocket(sock);
    WSACleanup();
}
//Function ShowError;
void Main_OnCommand(HWND
hwnd, int id, HWND hwndCtl, UINT
codeNotify)
{
    switch(id)
    {
          
case IDC_OK:
            {
      
              
SocketTest();
            }
          
break;
        case
IDC_CANCEL:
            {
                  
MessageBox(hwnd,TEXT("Your click
is canceled"),TEXT
("SocketClient"),MB_OK);
            }
        default:
          
break;
    }
}
void Main_OnClose(HWND hwnd)
{
    
  EndDialog(hwnd, 0);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章