200分解决!一句话就是两个不同的具域网怎么连接?

iceriver521 2002-11-06 05:13:08
我们公司是采用局域网方式上网,自动分配IP地址。
OICQ之类的软件可以正常使用,也可以和其他使用局域网上网的用户聊天,
可是如果要自己写类似的聊天程序,但是不借助服务器,那么该如何建立
连接?(假设双方彼此知道上网服务器的IP地址和局域网内的用户名)。

一句话就是两个不同的具域网怎么连接?
...全文
40 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
newyj 2002-11-10
  • 打赏
  • 举报
回复
不一定,p2p的也应该没有服务器,却可以。去查查有没有p2p的原码
aaafei 2002-11-09
  • 打赏
  • 举报
回复
这应该是和路由器有关的问题:两个不同子网的主机进行连接,必须经过中转,用专门的路由器或Windows2000Server自带的路由器功能可以实现。至于Delphi中有没有控件可以实现这个功能我也不知道,但我知道用ServerSocket和ClientSocket应该没办法实现。
这是我的愚见,谨供参考!
shinesi 2002-11-08
  • 打赏
  • 举报
回复
还有,不管你用UDP还是TCP都是一样的,

UDP只是在发送时连接(也可以先连接),

而且不保证不丢失(局域网内丢包机率很小),

TCP要先建立连接,但它能保证不丢包(机率很小很小),

所以理论上UDP比TCP效率高,像聊天工具用UDP会好一些,

因为它不是重要的数据,丢一个两个没关系
shinesi 2002-11-08
  • 打赏
  • 举报
回复

我们公司是采用局域网方式上网,自动分配IP地址。
OICQ之类的软件可以正常使用,也可以和其他使用局域网上网的用户聊天,
可是如果要自己写类似的聊天程序,但是不借助服务器,那么该如何建立
连接?(假设双方彼此知道上网服务器的IP地址和局域网内的用户名)。

=========================================================
假设双方彼此知道上网服务器的IP地址(局域网内)和局域网内的用户名

如果这样的话,你直接连对方就行,前提是你设了对方服务器作你的网关,
如果你想写QQ那样在广域网上运行的,前提是你必须有固定IP作服务器

iceriver521 2002-11-08
  • 打赏
  • 举报
回复
一个客户端,一个服务器端,一起开发,同时研究不就得了吗,反正我几天之内不怎么忙,你们谁要是有时间不就可以了吗?不可以吗
zhiwuyang602 2002-11-08
  • 打赏
  • 举报
回复
fa guo lai
zhiwuyang602@mail.com
iceriver521 2002-11-07
  • 打赏
  • 举报
回复
当一个处在局域网内,没有真正IP的机子通过网关上QQ时,在internet上与它通讯的另一个QQ发送数据包给它时,数据包是如何通过网关到达该没有真正IP的机子的?
都去吃饭去了吗?
iceriver521 2002-11-07
  • 打赏
  • 举报
回复
哪位有真正IP,我在局域网里面,哪位能配合一下?
iceriver521 2002-11-07
  • 打赏
  • 举报
回复
哪位能够配合一下!
zhiwuyang602 2002-11-07
  • 打赏
  • 举报
回复
UDP中只要端口好指定好
在一端指定服务器IP就行了
iceriver521 2002-11-07
  • 打赏
  • 举报
回复
假如用UDP控件连接,我该怎么设置呢?
zhiwuyang602 2002-11-07
  • 打赏
  • 举报
回复
通常服务器的IP是唯一的物理IP,而LAN 内的所有应用程序都占用不同的端口
所以,在不同的网段中进行通讯时只要指定服务器的IP(物理IP)就行了,而不能指定该网内的IP 端口指定到要好好考虑!
simni 2002-11-07
  • 打赏
  • 举报
回复
关注
tmpuser 2002-11-07
  • 打赏
  • 举报
回复
我对网络不是很懂,说点我的看法,不对的请指正。局域网中的机器只能主动连接服务器,因为服务器可以被找得到,找到后就可以建立一个连接,这样子局域网中的机器就可以跟服务器进行通信了,这是有连接的情况下(使用TCP/IP协议),如果是使用无连接的协议(如UDP),局域网内恐怕需要安装相关的代理软件(什么样的代理?不清楚,但听说QQ使用的就是UDP协议,既然QQ可以在局域网与服务器通信,应该就是有什么代理可以实现这个功能:使局域网内的机器与外部机器可以通过无连接的协议进行通信),总的来说,两台如果两台机器使用面向连接的协议通信的话,至少必须有一台有真IP,而且只能由没有真IP的机器主动连接该机器,要是有两台没有真IP的机器(不在同一局域网内)通信,就都必须连接到一台有真IP的机器上,由该机器进行数据中转,来实现那两台机器的通信。如果是使用无连接的协议,我就不太清楚了,应该在局域网内设置了什么代理软件后就可以使用了吧。希望高手指正其中错误的地方。
wjlsmail 2002-11-07
  • 打赏
  • 举报
回复
Study,但是我想用Socket肯定可以作。同一个网段内寻址没有问题,不过要是不同的网段,如你所说的两个不同的但又互连的局域网间的通信,寻址是关键问题。我想能不能这样:

用局域网服务器转发。 服务器为ServerSocket端,其它的客户都用ClientSocket 写过。 每个Client端Socket包中都带两个地址,服务器地址和对方的ip,然后由服务器收到后读取、转发

可以这样做吗?
zhiwuyang602 2002-11-07
  • 打赏
  • 举报
回复
是这样的
在同一网段中
每一应用程序都占用一个端口
这样 在 你的通讯程序中指定 host:=服务器的IP
就行了!
试试吧!
iceriver521 2002-11-07
  • 打赏
  • 举报
回复
假如服务器的IP202.**。**。**
公司公网IOP61.**.**.**,局域网IP192.168.10.2
服务器怎么和局域网通信呢?就是网吧里的机器上的QQ怎么和滕讯的服务器通讯呢!
可能是我的表达能力太差!
zhiwuyang602 2002-11-07
  • 打赏
  • 举报
回复
QQ de shi xian yuanli!?
tmpuser 2002-11-07
  • 打赏
  • 举报
回复
server当然要有真IP了,不然还不是没法在不同的局域网内访问了。
iceriver521 2002-11-07
  • 打赏
  • 举报
回复
up
加载更多回复(8)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧