基于MFC的网络编程(远程桌面监控)学习笔记(一)买电话,建立链接

在编写整个系统过程中参考了无数csdn的文章,我,,,,找不过来,如有侵权联系我我设私密就好,这个是我自己学习用的谢谢各位csdn的大佬

 


SOCKET编程
这一部分是整个编程的基础,所谓网络通信就是在实现socket链接,如何建立socket链接也就变得尤为重要。
个人认为建立socket链接主要就是一个打电话的过程,在这里不推荐大家使用MFC自己打包的CSOCKET,因为我搞了半天也没有搞懂它的的阻塞机制。下面就为大家介绍一下socket的通信机制。

socket通信分为两部分,客户端和服务器

首先是服务端的代码

当然就分为三个过程

1.买电话

WSAData wsaData;
	if (0 != WSAStartup(MAKEWORD(1, 1), &wsaData))
	{
		return 0;
	}
	if (1 != LOBYTE(wsaData.wVersion) ||
		1 != HIBYTE(wsaData.wVersion))
	{
		// 终止对套接字库的使用
		WSACleanup();
		return 0;
	}
SOCKET sockListen;

以上就是使用了socket字库和用系统提供的socket类买了一部属于自己的可供通信的手机。

2.插入电话卡,并放到有信号的地方

sockListen = socket(AF_INET, SOCK_STREAM, 0);
	if (sockListen < 0)
	{
		return 0;
	}

	SOCKADDR_IN addrSrv;
	addrSrv.sin_family = AF_INET;
	addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
	addrSrv.sin_port = htons(9908);
	int res = bind(sockListen, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR));
                                                     //插入电话卡

	if (res < 0)
	{
		this->MessageBoxW(L"绑定失败");                   
		return 0;
	}
	listen(sockListen, 10);       //设置监听模式,将电话接入信号网

3.开启监听模式,并接受所有来访的用户,建立链接响应

res = accept(sockListen, (SOCKADDR *)&addr_conn, 0);//就是相当于原来的开辟空间来存放
		if (res > 0)
		{
			AfxMessageBox(L"有客户端接入yyj控制系统");
		}

其次便是客户端的代码

1.同样也是买电话,拨打电话,这里记录一下IP和端口

所谓IP就是可以和你的电脑所在IP链接,而端口则是一个识别程序的代号,因为你的电脑里说实话服务器又千千万,如何链接到你写的这个服务器当中,用的就是端口。这里我们确定端口号为9908。socket链接机制提供了很多个链接端口2000以下千万不要用。因为会和已经被大公司买走的端口“打架”。

#define IPV4 "127.0.0.1"
#define PORT 9908
sockClient = socket(AF_INET, SOCK_STREAM, 0);

	if (sockClient < 0)
	{
		return 0;
	}
	SOCKADDR_IN addrSrv;
	addrSrv.sin_family = AF_INET;
	addrSrv.sin_addr.S_un.S_addr = inet_addr(IPV4);
	addrSrv.sin_port = htons(PORT);
	int res = connect(sockClient, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR));
	if (res < 0)
	{
		this->MessageBox(L"连接失败");
		OnOK();
		return 0;
	}

	this->MessageBox(L"连接成功");

如此我们电话就买好了,也建立了相关链接。就可以进行下一步操作了,万里长征第一步

 


 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值