2010-08-17 41 views
6

Tôi cần lấy thời gian hiện tại từ một trong những máy chủ thời gian internet trong ứng dụng máy tính để bàn của tôi. Tôi cho rằng tôi cần một cái gì đó giống như một chuỗi yêu cầu và một biểu thức chính quy để có được thời gian từ bất kỳ trang web nào mà người dùng muốn (có thể với một số trang web được xác định trước).Cách tốt nhất để đồng bộ thời gian máy tính với máy chủ thời gian internet là gì?

Hoặc có thể có một số thư viện miễn phí tồn tại?

Cảm ơn.

Trả lời

7

Đây là những gì mà Network Time Protocol được tạo cho. Nhưng nó có thể là một cái gì đó tốt nhất còn lại để hệ điều hành của bạn, vì sợ rằng bạn kết thúc với các ứng dụng dueling bằng cách sử dụng các máy chủ khác nhau, không hoàn toàn đồng bộ.

Xem các tiêu đề trong liên kết ở trên để triển khai UNIX và Windows.

1

này cảm thấy như một cái gì đó hệ điều hành nên làm ngày của riêng mình ...

Có một giao thức trên mạng Internet được gọi là NTP trả về thời gian từ timeservers.

Bạn có thể muốn thử tìm thư viện/lớp học có thể sử dụng NTP để truy xuất thời gian cho bạn.

Hoặc bạn có thể thử xem mã nguồn cho ntpclient.

0

Thông thường, hầu hết các hệ điều hành đều nhúng một chức năng như vậy.

Cả Windows và Linux đều có thể đồng bộ hóa với NTP máy chủ.

Nếu thực sự muốn cho phép người dùng thay đổi múi giờ, bạn nên tìm kiếm API hệ điều hành cụ thể thay vì liên lạc trực tiếp với máy chủ thời gian sau đó thay đổi thời gian của hệ thống. Đây sẽ là cách đẹp hơn.

2

Có thư viện miễn phí chi tiết kỹ thuật về cách lấy thời gian, và các định dạng mà bạn nhận được nó (vì vậy REs nói chung là không cần thiết). Bạn lựa chọn phụ thuộc vào mức độ chính xác/độ chính xác mà bạn muốn.

RFC 868 cho thời gian đến giây, điều này hoàn toàn phù hợp với nhiều mục đích của mọi người. Nếu nó đủ tốt, thì đơn giản là lot sẽ dễ triển khai hơn những người khác được liệt kê bên dưới.
RFC 5905 xác định Giao thức thời gian mạng. Miễn là bạn chỉ muốn nhận được thời gian, không cung cấp cho bất kỳ ai khác, NTP có lẽ là quá mức cần thiết.
RFC 4330 định nghĩa SNTP (Simple NTP), là phiên bản đơn giản của NTP cho các máy tính hoạt động như "nút lá" - nghĩa là chúng lấy thời gian từ nơi khác, nhưng không có gì khác lấy thời gian từ chúng.

The NTP project có thư viện NTP miễn phí cho một số hệ thống.

Các vấn đề liên quan