如何用MFC实现两个客户端之间的点对点通信?(不借助服务器)

如何用MFC实现两个客户端之间的点对点通信?(不借助服务器),第1张

我不明白LZ的这句话->不是主机显示的那4个双字节的IP地址,而是一个更长的数字
IP地址是4个双字节的IP地址 如果该客户机是位于一个局域网里 那么就会有2IP地址 内网IP 外网IP 网络中的客户IP当然是使用外网IP 整么会不是呢
实现P2P的方法
把服务器简单称为S 客户端为C
第一种情况 当C1与C2同时都位于外网的时候 那么C1可以直接向C2发送信息 C2也可以直接向C1发送信息
第二种情况 当C1位于外网 而C2 是在一个局域网里的时候 C2可以直接向C1发信息 C1能收到 而C1向C2发送信息到达LAN的时候那么 传送信息包里的端口就会被改变 C2就无法接受到该信息 如果要让C2能接受到信息 那么C2就要先发送一个信息给C1 这个时候C2就打上了一个洞 能让C1 的指定端口发送信息到C2 这样C2就能接受到该信息
第三种情况 也是最难的 C1与C2 分别位于不同的局域网了 那么就需要C1与C2先向服务器发送信息打洞 然后各自向对方的洞里发送一个信息 然后就可以实现P2P了
以上就是所谓的打洞技术

有远程直接方法数据库的方法。大中型数据库基本都是网络数据库,如常见的ORACLE / MSSQL / MYSQL等。
MFC编程,对这些数据库可以直接通过ADO进行查询和修改,常用的办法,就是用IP地址和实例(一般为默认)作为连接字符串中的SERVER即可。
对于网络型数据库(ACCESS、DBASE不在此列),你不需要做服务器端程序,只需要通过数据库支持的通讯协议和方法进行远程 *** 作即可。

因为Client是通信的主动方,即发起通信的一端,因此通信之前Client必须已知Server的IP和端口号才行。
通常的C/S模式通信的做法是先为Server申请公网IP,然后在client编程时指明欲连接的Server的IP和端口号,这样的client程序一旦安装后就内置了Server的IP;
另一种做法是在client的执行界面预留输入框,执行时允许用户输入Server的IP,然后实现通信,这两种方式都必须事先知道server的IP信息才行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13489019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-17
下一篇 2023-08-17

发表评论

登录后才能评论

评论列表(0条)

保存