做两个小程序实现在本机的通信

本文介绍如何使用VS2019的MFC应用模块,通过TCP通信技术在本机构建一个服务端和客户端,实现两个应用程序间的通信。详细讲解了从创建基于对话框的应用程序,添加Windows套接字功能,到设计GUI界面,以及编写服务端和客户端的发送、接收代码,最后展示了运行效果。
摘要由CSDN通过智能技术生成

做两个小程序实现在本机的通信

本项目基于vs2019的MFC应用模块,利用TCP通信技术实现在本机的两个应用程序实现通信。

在这里插入图片描述首先是建立一个MFC应用程序,了解一下它的有关操作。
在这里插入图片描述应用程序类型为基于对话框,点击下一步。
在这里插入图片描述这里高级功能选择一下windows套接字,我们这个程序要用到socket,来进行传输数据。
在这里插入图片描述这里生成的类选择app,到时候就可以得到两个应用程序,到这里完成初始设置。
在这里插入图片描述当打开vs2019时,程序默认不会帮你打开这个基于对话框的设计界面的,需要手动打开,目录在资源文件的.rc路径下的dialog文件里的IDD_文件名_dialog中。
这里我们主要介绍一下我们这次程序主要用到的三个控件:button 按钮,static text 静态文本框,edit control 文本编辑框。button按钮可以在一次点击click下,执行它下面的代码,static text主要是用于显示静态的数据,edit control可以用来用户输入数据。

拖动button控件到对话框内,查看它的属性:
在这里插入图片描述caption是这个button上面所显示的文字,可以告诉使用者这个按键的功能,id是这个控件在这个程序里的名字,程序中使用都要用到它。

下面我们开始利用TCP技术来构建一个服务端和一个客户端,使这两个程序能够在相互之间进行通信。

下面给出两个程序之间的软件框图:
在这里插入图片描述我们先进行服务端的构建,下面给出这个服务端程序的GUI,是利用上面提到的三个控件构成的,很简单,需要注意的是在text里的文本编辑框(edit control)中需要设置属性中的multiline为true,可以让最终显示的数据更加美观。
在这里插入图片描述双击“监听”进入监听控件的编写:

// An highlighted block

void CTCPSviceDlg::OnBnClickedButton1()
{
   
	// TODO: 在此添加控件通知处理程序代码
	HWND hipWnd = ::GetDlgItem(this->m_hWnd, IDC_EDIT2_ip);
	char szIp[MAX_PATH] = {
    0 };
	::GetWindowText(hipWnd, szIp, MAX_PATH);

	HWND hportWnd = ::GetDlgItem(this->m_hWnd, IDC_EDIT1_port);
	char szPort[MAX_PATH] = {
    0 };
	::GetWindowText(hportWnd, szPort, MAX_PATH);

	if (SocketBindAndListen(szIp, atoi(szPort)))
	{
   
		AddText("Listen...","{Listen}");
	}
}

下面双击"发送"进行程序的编写:

// An highlighted block
void CTCPSviceDlg::OnBnClickedButton2()
{
   
	// TODO: 在此添加控件通知处理程序代码
	HWND hWnd = ::GetDlgItem(this->m_hWnd, IDC_EDIT4_send);
	char szSend[MAX_PATH] = {
    0 };
	::GetWindowText(hWnd, szSend, MAX_PATH);
	send(m_clientsock,szSend,1 + ::lstrlen
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值