VC远控(一)界面设计及套接字连接测试
首先创建一个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远控(一)界面设计及套接字连接测试的更多相关文章
- VC++学习之网络编程中的套接字
VC++学习之网络编程中的套接字 套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程.应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问 ...
- [转]如何借助 TLS/SSL 确保套接字连接的安全(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用)
本文转自:http://msdn.microsoft.com/zh-cn/library/windows/apps/jj150597.aspx 本主题将展示在使用 StreamSocket 功能时,如 ...
- VMware无法连接MKS:套接字连接尝试次数太多解决
粘贴自:https://jingyan.baidu.com/article/425e69e61eb578be15fc16ae.html VMware在开启虚拟机的时候,突然弹出[无法连接MKS:套接字 ...
- WCF 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的
一个项目需要用到推送的功能,就是服务器主动推送数据给多台客户机.于是采用了WCF的双工通讯netTcpBinding 写好的项目,在本机测试都没有问题. 如果放在局域网内测试,问题出来了:先是安全性问 ...
- Linux/UNIX套接字连接
套接字连接 套接字是一种通信机子.凭借这样的机制.客户/server系统的开发工作既能够在本地单机上进行.也能够夸网络进行. 套接字的创建和使用与管道是有差别的.由于套接字明白地将客户和server区 ...
- fsockopen — 打开一个网络连接或者一个Unix套接字连接
fsockopen (PHP 4, PHP 5, PHP 7) 说明 resource fsockopen ( string $hostname [, int $port = -1 [, int &a ...
- 解决VMware虚拟机报错“无法连接MKS:套接字连接尝试次数太多,正在放弃”
1.错误描述 在VMware中打开虚拟机时报错: "无法连接MKS:套接字连接尝试次数太多,正在放弃" 物理机操作系统: Windows 7 虚拟机操作系统: Kali Linux ...
- Linux:【解决】无法连接 MKS:套接字连接尝试次数太多正在放弃
[解决]无法连接 MKS:套接字连接尝试次数太多正在放弃 操作: 我的电脑 -> 右键 -> 管理 -> 服务和应用程序 -> 服务: 开启下面的服务: 服务启动成功后,重 ...
- PHP Socket(套接字连接)扩展简介和使用方法
PHP socket扩展是基于流行的BSD sockets,实现了和socket通讯功能的底层接口,它可以和客户端一样当做一个socket服务器. 使用这些函数时请注意,虽然他们中有很多和C函数同名的 ...
随机推荐
- 【重走Android之路】【番外篇】关于==和equals
[重走Android之路][番外篇]关于==和equals 在实际的编程当中,经常会使用==和equals来判断变量是否相同.但是这两种比较方式也常常让人搞得云里雾里摸不着头脑.下面是我个人做的总 ...
- c# 网络是否连接
c# 网络是否连接 方案一: using System; using System.Collections.Generic; using System.Linq; using System.Text ...
- linux kernel文件系统启动部分
现在的kernel里,有个叫做ramfs的文件系统,会把initrd(或者ramdisk,为惯性叫法)里的东西挂载到early-rootfs里(即rootfs,是ramfs的一个特殊实例),执行一些在 ...
- angularjs tips
angular-ui #1 .Impossible to disable fade in modal angularjs ui modal 去掉fade in效果: googleA googleB # ...
- Android HTTPS(5)SSL测试工具
Nogotofail: A Network Traffic Security Testing Tool Nogotofail is a tool gives you an easy way to co ...
- sqlserver资源下载
安装包可以从itellyou下载 NorthWind 安装SQL2000SampleDb.msi 之后可以在C:\SQL Server 2000 Sample Databases目录 2016/01/ ...
- cdoj 1329 卿学姐与魔法 优先队列
卿学姐与魔法 Time Limit: 1200/800MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...
- 【温故知新】c#事件event
从上一篇文章[温故知新]C#委托delegate可知,委托delegate和事件Event非常的相似,区别就是event关键字,给delegate穿上了个“马甲”. 让我们来看官方定义: 类或对象可以 ...
- [Android教程]EditText设置/隐藏光标位置、选中文本和获取/清除焦点
有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点. 1. 设置光标到指定位置 EditText et ...
- 51nod1364 最大字典序排列
不断的在cur的后面找最大的符合条件的数扔到cur的前面. 用线段树维护操作就可以了. #include<cstdio> #include<cstring> #include& ...