| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 538 人关注过本帖
标题:发个远控半成品希望帮忙改进
只看楼主 加入收藏
lyxhkg
Rank: 2
等 级:禁止访问
帖 子:50
专家分:24
注 册:2012-4-24
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:5 
发个远控半成品希望帮忙改进
程序代码:
// Server.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "Server.h"
#include <winsock.h>


#pragma comment(lib,"ws2_32")


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
WSADATA wsadata;
WORD ver = MAKEWORD(2,2);
WSAStartup (ver, &wsadata);
SOCKET server;
server = socket (AF_INET,SOCK_STREAM,0);
SOCKADDR_IN serveraddr;
serveraddr.sin_family=AF_INET;
serveraddr.sin_port = htons(12345);
serveraddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);

bind (server,(SOCKADDR*)&serveraddr,sizeof(serveraddr));
listen(server,10);
SOCKET client;
while (true)
{
client = accept(server,0,0);
}



    return 0;
}


客户端// ycDlg.cpp : implementation file
//

#include "stdafx.h"
#include "yc.h"
#include "ycDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
WSADATA wsadata;
SOCKET server;
SOCKADDR_IN serveraddr;
int port = 12345;







/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
    CAboutDlg();

// Dialog Data
    //{{AFX_DATA(CAboutDlg)
    enum { IDD = IDD_ABOUTBOX };
    //}}AFX_DATA

    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CAboutDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL

// Implementation
protected:
    //{{AFX_MSG(CAboutDlg)
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
    //{{AFX_DATA_INIT(CAboutDlg)
    //}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CAboutDlg)
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
    //{{AFX_MSG_MAP(CAboutDlg)
        // No message handlers
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CYcDlg dialog

CYcDlg::CYcDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CYcDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CYcDlg)
    m_addr = _T("");
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CYcDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CYcDlg)
    DDX_Control(pDX, IDC_TREE, m_tree);
    DDX_Text(pDX, IDC_EDIT_ADDR, m_addr);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CYcDlg, CDialog)
    //{{AFX_MSG_MAP(CYcDlg)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CYcDlg message handlers

BOOL CYcDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Add "About..." menu item to system menu.

    // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!strAboutMenu.IsEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }

    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);            // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
   
    // TODO: Add extra initialization here
    GetDlgItem(IDC_EDIT_ADDR)->SetWindowText("127.0.0.1");
    m_ImageList_tree.Create(16,16,ILC_COLOR16,20,40);
    HICON hIcon =NULL;


    hIcon = (HICON)LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2),IMAGE_ICON,16,16,NULL);
    m_ImageList_tree.Add(hIcon);
    hIcon = (HICON)LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,16,16,NULL);
    m_ImageList_tree.Add(hIcon);

    hIcon = (HICON)LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3),IMAGE_ICON,16,16,NULL);
    m_ImageList_tree.Add(hIcon);

    m_tree.SetImageList(&m_ImageList_tree,TVSIL_NORMAL);
    m_tree.InsertItem("远程电脑",0,0,0,0);
    WORD ver = MAKEWORD(2,2);
    WSAStartup(ver,&wsadata);
    return TRUE;  // return TRUE  unless you set the focus to a control
}

void CYcDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
        CAboutDlg dlgAbout;
        dlgAbout.DoModal();
    }
    else
    {
        CDialog::OnSysCommand(nID, lParam);
    }
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CYcDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting

        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CYcDlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}

void CYcDlg::OnOK()
{
    // TODO: Add extra validation here
   
    UpdateData(true);
    if(m_addr.IsEmpty())
    {
        MessageBox("IP为空无法连接!!");
        return;
    }
    server = socket(AF_INET,SOCK_STREAM,0);
  serveraddr.sin_family = AF_INET;
  serveraddr.sin_port = htons(port);
  serveraddr.sin_addr.S_un.S_addr = inet_addr(m_addr.LockBuffer());
  if(connect(server,(SOCKADDR*)&serveraddr,sizeof(serveraddr))!=0)
  {

 
  MessageBox("连接失败!!");
  GetDlgItem(IDC_STATIC)->SetWindowText("连接服务器失败!!");
  Sleep(1000);
  GetDlgItem(IDC_STATIC)->SetWindowText("未连接!");
  return;

 

 
  }


else
{

GetDlgItem(IDC_STATIC)->SetWindowText("服务器连接成功!");

}



}
服务端!
求指点!!!
搜索更多相关主题的帖子: comment 希望 半成品 
2012-11-16 00:12
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
收藏
得分:20 
楼主犀利,学习了。
2012-11-16 08:42
tlnu涂伦
Rank: 1
来 自:江西
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-13
收藏
得分:0 
霸气,我表示是新人报道,看不懂
2012-11-16 11:45
llwwzz
Rank: 2
等 级:论坛游民
帖 子:25
专家分:27
注 册:2012-11-12
收藏
得分:0 
无奈
2012-11-16 12:16
yfy836352980
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-2-28
收藏
得分:0 
表示中间的看不懂。就看懂了后面几段。
2012-11-16 12:22
lyxhkg
Rank: 2
等 级:禁止访问
帖 子:50
专家分:24
注 册:2012-4-24
收藏
得分:0 
过几天成品出来帮我测试下BUG就麻烦大家了
顺便问下那个对服务器的TELNET熟悉啊弄到了TELNET开不起3389我去啊!!坑爹呢!
2012-11-16 16:24
快速回复:发个远控半成品希望帮忙改进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038203 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved