在网络中,如何与一个和自己在用同样程序的陌生人实现交流?无服务器 (100分)

  • 主题发起人 主题发起人 catcher
  • 开始时间 开始时间
C

catcher

Unregistered / Unconfirmed
GUEST, unregistred user!
比如:世界上只有两个人互相不认识的人在用这种软件,现在要在很短的时间内让一方知道
另一方的IP,或者能发送消息给另一方,应该怎么做呢?
 
什么程序?你是不是要问类似P2P的程序怎样找到一个节点的?
 
findwindow
找出句柄后看有没有存在
 
差不多和p2p一个原理吧
 
[:D]找窗口的方法不保险,你可以用变通的方法,即每次启动后在注册表中写上特定的信息!
 
我看了p2p的软件(无服务器),还是不一样的吧,
p2p可能是基于某种算法将使用p2p软件的ip检索出来,可能是软件不断工作,
将ip不断搜索到,

但对于特定的情况就不行了,
比如:世界上只有两个人互相不认识的人在用这种软件,现在要在很短的时间内让一方知道
另一方的IP,或者能发送消息给另一方,应该怎么做呢?

如果在局域网内发个广播就可以了,但是……
 
应该有一个中转站吧
 
p2p的软件(无服务器),哪有?我想知道怎么实现的?
我觉得没有服务器是不太可能的。
你的想 法是不切实际的
 
P2P不是没有服务器,每个节点既是客户又是服务器,
节点(服务器)是动态加入和退出的。
P2P软件都有一个动态查找节点的算法协议什么的。
http://www.jxta.org
 
[:D][:D][:D]打不开。
能不能剪点关键的帖出来
 
设想:
A、编写一个既是服务器端又是客户端的软件:
客户瑞模块从某个特定的端口发送特定的信息到网络中广播,服务端模块在这个特定瑞口
上进行监听,收到后可以判断是不是该类软件发出的信息包(根据所发送的特定信息来判断),

注:每台机上发送的信息包不能是相同的,可以设置信息包为“该软件的系列号+网卡MAC”等方式,
这样既然能识别此类信息包为该软件所发出的,又可以分辨出是异地机器上发出的。

不知这样的设想行得通否?
请高手们指点。
 
这种方式还是对局域网的呀,
那中p2p的也许是行的通的想法(不是100%实现)
不过有些算法什么的用java要好些吧。比如jxta就是sun支持的一个项目协议
我也在研究几个相关的算法,对我复杂了些,哈哈,
还请有志者多多交流
 
我原来做过。 原理很简单: 通过udp广播发送特定识别符和本机ip, 监听到的再通过收到ip地址用tcp连接连过去确认,确认信息里也带过去自己的ip(尽管不需要带本机ip也能实现,不过我喜欢偷懒,不愿意再查api函数了)。 确认成功后就可以通讯了。
 
这样做能监听到的只是同个局域网内的ip啊,
我是说网络上
 
可以找一个支持数据库的免费空间
软件一上网就把本地ip上传到该空间
并作为一个在线用户,其他用户可以
通过软件检索到加入的用户的ip,此时
再与该ip取得联系应该可以实现。
这是我的一个设想,自己没试过。
 
即使没有媒人
你也应该给他们一个地方,可以走到一块
明白我的意思么?
这两个程序不能绝对孤立
得到对方ip的过程,还是需要服务器和其他手段协助的
 
后退
顶部