首先创建一个MFC项目。

选择基于对话框:

勾选Windows套接字

依次拉上各种不同的控件:

Edit Control、Button、Tree、Static Text、List、Progress Control

运行的结果如下图所示:

在代码中设定Ip的初始值

GetDlgItem(IDC_EDIT_ADDR)->SetWindowText("127.0.0.1");

如果连接成功,在下方的tree中会显示远程主机的图片,通过以下代码来完成。

    m_ImageList_Tree.Create(, , ILC_COLOR16, , );
HICON hIcon = NULL; hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON_HOST), IMAGE_ICON, ,, NULL);
m_ImageList_Tree.Add(hIcon);
m_tree.SetImageList(&m_ImageList_Tree, TVSIL_NORMAL);
m_tree.InsertItem("Remote Host", , , , );
第一行:前两个24表示图标的大小,长和宽。20表示初始时可以容纳的图标的个数,40表示最大的个数。

m_tree这个成员变量需要手动添加,具体步骤如下:

打开类向导,选择窗体的类名,选择成员变量。点击添加成员变量,变量名改为m_tree

下面来编写connect按钮的部分功能及对socket套接字的测试

首先需要定义三个相关的成员变量:

WSADATA wsadata;
SOCKET server;
SOCKADDR_IN server_addr;

在OnInitDialog()中海需要添加以下代码

    //对Windows 套接字进行初始化
WORD ver = MAKEWORD(, ); //2.2版本(MAKEWORD(1,2)//2.1版本)
WSAStartup(ver, &wsadata);

双击connect按钮,添加鼠标点击事件

void CRemoteClientDlg::OnBnClickedButtonOk()
{
// TODO: 在此添加控件通知处理程序代码 //创建套接字
UpdateData(true); if (m_addr.IsEmpty())
{
GetDlgItem(IDC_STATIC)->SetWindowText("IP address is empty");
MessageBox("IP address is empty !");
GetDlgItem(IDC_STATIC)->SetWindowText("No Connection");
} server = socket(AF_INET, SOCK_STREAM, );//0表示使用TCP、UDP协议 server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.S_un.S_addr = inet_addr(m_addr.LockBuffer()); //在指定的套接字上进行连接
if(connect(server, (SOCKADDR*)&server_addr,sizeof(server_addr)) != )
{
GetDlgItem(IDC_STATIC)->SetWindowText("Connect Failed ");
MessageBox("Connect Failed !");
GetDlgItem(IDC_STATIC)->SetWindowText("No Connection"); return;
}
}

第一个if语句用来判断ip输入框是否为空
第二个if语句用来判断是否连接成功,如果连接失败就会返回一个非零的值。

由于server端还没有写,所以说,肯定是连接失败的。

VC远控(一)界面设计及套接字连接测试的更多相关文章

  1. VC++学习之网络编程中的套接字

    VC++学习之网络编程中的套接字 套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程.应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问 ...

  2. [转]如何借助 TLS/SSL 确保套接字连接的安全(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)

    本文转自:http://msdn.microsoft.com/zh-cn/library/windows/apps/jj150597.aspx 本主题将展示在使用 StreamSocket 功能时,如 ...

  3. VMware无法连接MKS:套接字连接尝试次数太多解决

    粘贴自:https://jingyan.baidu.com/article/425e69e61eb578be15fc16ae.html VMware在开启虚拟机的时候,突然弹出[无法连接MKS:套接字 ...

  4. WCF 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的

    一个项目需要用到推送的功能,就是服务器主动推送数据给多台客户机.于是采用了WCF的双工通讯netTcpBinding 写好的项目,在本机测试都没有问题. 如果放在局域网内测试,问题出来了:先是安全性问 ...

  5. Linux/UNIX套接字连接

    套接字连接 套接字是一种通信机子.凭借这样的机制.客户/server系统的开发工作既能够在本地单机上进行.也能够夸网络进行. 套接字的创建和使用与管道是有差别的.由于套接字明白地将客户和server区 ...

  6. fsockopen — 打开一个网络连接或者一个Unix套接字连接

    fsockopen (PHP 4, PHP 5, PHP 7) 说明 resource fsockopen ( string $hostname [, int $port = -1 [, int &a ...

  7. 解决VMware虚拟机报错“无法连接MKS:套接字连接尝试次数太多,正在放弃”

    1.错误描述 在VMware中打开虚拟机时报错: "无法连接MKS:套接字连接尝试次数太多,正在放弃" 物理机操作系统: Windows 7 虚拟机操作系统: Kali Linux ...

  8. Linux:【解决】无法连接 MKS:套接字连接尝试次数太多正在放弃

    [解决]无法连接 MKS:套接字连接尝试次数太多正在放弃 操作: 我的电脑 -> 右键 -> 管理 -> 服务和应用程序 -> 服务: 开启下面的服务: ​ 服务启动成功后,重 ...

  9. PHP Socket(套接字连接)扩展简介和使用方法

    PHP socket扩展是基于流行的BSD sockets,实现了和socket通讯功能的底层接口,它可以和客户端一样当做一个socket服务器. 使用这些函数时请注意,虽然他们中有很多和C函数同名的 ...

随机推荐

  1. python流程控制语句 ifelse - 3

    #! /usr/bin/python x = input ('please inut a integer:') x = int(x) : print ('你输入了一个负数') elif x == : ...

  2. jquery Deferred demo

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. URAL 1250 Sea Burial 简单Floodfill

    问这个人掉落的海域包含几个岛屿. 八方向相连为同一片海域,四方向相连为同一个岛屿.与边界相连的岛屿不算. 方法:在给定地图外面填充一圈".",从这个人掉落的地方开始进行floodf ...

  4. c# ComboBox特殊属性

    c#   ComboBox特殊属性 comboBox1.ValueMember = "Id";  设置值  不显示的comboBox1.DisplayMember = " ...

  5. jQuery练习一好友列表变色

    多选 选中变色 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  6. JVM的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集

    (转自:http://my.oschina.net/u/436879/blog/85478) 在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认 ...

  7. ARC的内存管理

        在objective-c中,内存的引用计数一直是一个让人比较头疼的问题.尤其是当引用计数涉及到arc.blocks等等的时候.似乎ARC的出现只是让我们解放了双手,由于底层实现依然依赖引用计数 ...

  8. leetcode:Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  9. UVa 424 Integer Inquiry

    之前杭电上也做过a + b的高精度的题,不过这道题的区别是有多组数据. 之前做的时候开了3个字符数组a,b,c,在计算的时候还要比较a,b长度,短的那个还要加'0',还设置了一个add来存放进位. 现 ...

  10. Hack 【二分答案】

    题意:给出n门课程,每一门课程考的分数,每一门课程的学分,求最多删去k组数据之后能够得到的最大加权平均数 先开一个数组x[],其中x[i]=1代表没有删除这门课程,x[i]=0表示删除了这门课程 然后 ...