三台电脑在时间上同步的问题?急!

Tulip999 2003-10-02 05:18:25
我在同一个局域网上,采用的是BCB的ServerSocket和ClientSocket控件,用TCP/IP协议来实现三台电脑的网络层连接(一台为服务器,两台为终端)。
但是我的数据传输要采用TDMA(时分多址)协议来传送一个字符串。
这里就存在一个通过服务器来使三台电脑同步的问题
请给我有经验的高手指点!
本来想给200分,可是我必须遵守规定
谢谢各位,请踊跃发言!
...全文
142 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tulip999 2003-10-14
  • 打赏
  • 举报
回复
那不用UDP行码?
我用的是TCP/IP呀,面向连接的协议,这样能够保证数据传输的可靠性
因为如果数据传输没有被接收到,是不允许的
土著巫师 2003-10-11
  • 打赏
  • 举报
回复
在服务器上,每隔一段时间就发送一个UDP数据报(内容为服务器的日期和时间),客户程序收到后就把自己的主机时间设置和收到的一样,现在卫星系统传输数据时的时间同步多用此法,在局域网内精度很高。
NowCan 2003-10-09
  • 打赏
  • 举报
回复
网络传输恐怕就要ms级了,再高的精度有什么用呢?
DOS命令是
net time \\server_ip_or_name /set
Tulip999 2003-10-09
  • 打赏
  • 举报
回复
我用ServerSocket和ClientSocket连接电脑啦,想不要服务器每是每刻检查,让客户端自己维护自己的发送信息的时间好一些,这样到了该自己发送的时间时就发送,免去和服务器之间来回通知
这样的话,在客户端和服务器都应该分别做什么呢?
Tulip999 2003-10-05
  • 打赏
  • 举报
回复
好的,我试一下,

希望大家多多发言,答者有分,主要是提供给大家一个交流学习的题目^_^
xizhouhawk 2003-10-05
  • 打赏
  • 举报
回复
同意 Santos(快乐的GG)
其实自己写程序应该不难。
到书上随便找一个网络socket编程的例子,应该就会了
warton 2003-10-04
  • 打赏
  • 举报
回复
你可以只安装indy控件呀,到网上下载相应的安装包吧!
不必同时安装cb5和cb6
suibian5110 2003-10-04
  • 打赏
  • 举报
回复
我是初学者,不知你可以解决我的问题吗?

老师让我用c++builder做一个web service 的Demo,就是做一个服务,然后用客户程序调用这个服务,就是李维的《C++Builder SOAP/Web Service开发>>书上的第三章的那个例子,他是客户调用服务,我现在要在一个服务里面调用另一个服务,您说可以吗?若可以,能不能给出具体的实现方法呢?(不好意思,我不会发帖子,借宝地一用)
Tulip999 2003-10-03
  • 打赏
  • 举报
回复
另外,我对BCB不熟悉,请问TIdDayTimeServer, TIdDayTimeClient这两个组件在哪里找到的?
我刚才找了,在组件栏里没发现
Tulip999 2003-10-03
  • 打赏
  • 举报
回复
谢谢,独孤大侠。
我还有个疑问就是:TIdDayTimeServer, TIdDayTimeClient这两个组件的时钟经度能够达到毫秒级吗?

另外我想,可不可以不需要同步,服务器自己知道时间就够了
走到A请求的时间时,先告诉A:你可以发了,A再发。
询问是网络通信必须的。A发送完发送请求后始终保持等待发送的状态
走到B 请求的时间是,告诉B:可以发送了,B再发。
我不懂电脑 2003-10-03
  • 打赏
  • 举报
回复
使用方法和TClientSocket类似注意IdDayTime1->DayTimeStr返回服务器日期
我不懂电脑 2003-10-03
  • 打赏
  • 举报
回复
简单点可以编写一个时间服务器,各客户端统一使用时间服务器的时钟就可以实现时间同步,具体可以使用TIdDayTimeServer, TIdDayTimeClient这两个组件。
Tulip999 2003-10-03
  • 打赏
  • 举报
回复
哦,TIdDayTimeServer, TIdDayTimeClient这两个组件可能是BCB6里面的吧
可是我用的BCB5,我能不能把BCB6也装在同一台电脑上?

最好在客户端实现。否则需要服务器额外处理。是怎么回事?怎么做呢?
我不懂电脑 2003-10-03
  • 打赏
  • 举报
回复
TIdDayTimeServer, TIdDayTimeClient这两个组件的时钟经度能够达到毫秒级
在Indy Client和Indy Servers组件页里
走到A请求的时间时,先告诉A:你可以发了,A再发。
询问是网络通信必须的。A发送完发送请求后始终保持等待发送的状态
走到B 请求的时间是,告诉B:可以发送了,B再发。
最好在客户端实现。否则需要服务器额外处理。
chifengwatch 2003-10-02
  • 打赏
  • 举报
回复
时间同步有dos命令吧。
Tulip999 2003-10-02
  • 打赏
  • 举报
回复
to :invalid(空心菜) 对于Indy我不懂啊,具体怎么用呢?它和ServerSocket、ClientSocket有什么区别呢?有什么优势呢?它的Time组件的精确计时能达到的毫秒级的精度嘛?
请指点。

to :Santos(快乐的GG)我能理解你给出这个思路,谢谢,但是对于具体的怎么发送时间,怎么得到时间,怎么修改时间我不知道如何做,能给我个例子来引导一下嘛?谢谢
Santos 2003-10-02
  • 打赏
  • 举报
回复
可以每隔一定时间,由ServerSocket向ClientSocket发送时间,ClientSocket接收后,修改本地时间即可。
invalid 2003-10-02
  • 打赏
  • 举报
回复
启动一台电脑的时间服务器程序。其它用服务器来同步。服务器和客户端程序可以用Indy的Time组件,有TimeServer和TimeClient

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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