(转)C#获取Internet服务器的时间

c# Internet时间服务器同步 需要用到的名空间using System.Net;using System.Net.Sockets;using System.Runtime.InteropServices; 建立一个结构public struct SystemTime { public ushort wYear; public us 阅读详情
using  System;
using  System.Net;
using  System.Net.Sockets;

namespace  SNTPTime
{
    
//  Leap indicator field values
     public   enum  _LeapIndicator
    {
        NoWarning,  
//  0 - No warning
        LastMinute61,  //  1 - Last minute has 61 seconds
        LastMinute59,  //  2 - Last minute has 59 seconds
        Alarm    //  3 - Alarm condition (clock not synchronized)
    }

    
// Mode field values
     public   enum  _Mode
    {
        SymmetricActive, 
//  1 - Symmetric active
        SymmetricPassive,  //  2 - Symmetric pasive
        Client,     //  3 - Client
        Server,     //  4 - Server
        Broadcast,    //  5 - Broadcast
        Unknown     //  0, 6, 7 - Reserved
    }

    
//  Stratum field values
     public   enum  _Stratum
    {
        Unspecified,   
//  0 - unspecified or unavailable
        PrimaryReference,   //  1 - primary reference (e.g. radio-clock)
        SecondaryReference,   //  2-15 - secondary reference (via NTP or SNTP)
        Reserved     //  16-255 - reserved
    }

    
///   <summary>
    
///  SNTPTimeClient 的摘要说明。
    
///  
    
///  Public class members:
    
///
    
///  LeapIndicator - Warns of an impending leap second to be inserted/deleted in the last
    
///  minute of the current day. (See the _LeapIndicator enum)
    
///  
    
///  VersionNumber - Version number of the protocol (3 or 4).
    
///  
    
///  Mode - Returns mode. (See the _Mode enum)
    
///  
    
///  Stratum - Stratum of the clock. (See the _Stratum enum)
    
///  
    
///  PollInterval - Maximum interval between successive messages.
    
///  
    
///  Precision - Precision of the clock.
    
///  
    
///  RootDelay - Round trip time to the primary reference source.
    
///  
    
///  RootDispersion - Nominal error relative to the primary reference source.
    
///  
    
///  ReferenceID - Reference identifier (either a 4 character string or an IP address).
    
///  
    
///  ReferenceTimestamp - The time at which the clock was last set or corrected.
    
///  
    
///  OriginateTimestamp - The time at which the request departed the client for the server.
    
///  
    
///  ReceiveTimestamp - The time at which the request arrived at the server.
    
///  
    
///  Transmit Timestamp - The time at which the reply departed the server for client.
    
///  
    
///  RoundTripDelay - The time between the departure of request and arrival of reply.
    
///  
    
///  LocalClockOffset - The offset of the local clock relative to the primary reference
    
///  source.
    
///  
    
///  Initialize - Sets up data structure and prepares for connection.
    
///  
    
///  Connect - Connects to the time server and populates the data structure.
    
///  
    
///  IsResponseValid - Returns true if received data is valid and if comes from
    
///  a NTP-compliant time server.
    
///  
    
///  ToString - Returns a string representation of the object.
    
///  
    
///  -----------------------------------------------------------------------------
    
///  Structure of the standard NTP header (as described in RFC 2030)
    
///                        1                   2                   3
    
///    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |LI | VN  |Mode |    Stratum    |     Poll      |   Precision   |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                          Root Delay                           |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                       Root Dispersion                         |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                     Reference Identifier                      |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                                                               |
    
///   |                   Reference Timestamp (64)                    |
    
///   |                                                               |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                                                               |
    
///   |                   Originate Timestamp (64)                    |
    
///   |                                                               |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                                                               |
    
///   |                    Receive Timestamp (64)                     |
    
///   |                                                               |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                                                               |
    
///   |                    Transmit Timestamp (64)                    |
    
///   |                                                               |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                 Key Identifier (optional) (32)                |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///   |                                                               |
    
///   |                                                               |
    
///   |                 Message Digest (optional) (128)               |
    
///   |                                                               |
    
///   |                                                               |
    
///   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///  
    
///  -----------------------------------------------------------------------------
    
///  
    
///  NTP Timestamp Format (as described in RFC 2030)
    
///                          1                   2                   3
    
///      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    
///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///  |                           Seconds                             |
    
///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///  |                  Seconds Fraction (0-padded)                  |
    
///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    
///  
    
///   </summary>
     public   class  SNTPTimeClient
    {
        
//  NTP Data Structure Length
         private   const   byte  NTPDataLength  =   48 ;
        
//  NTP Data Structure (as described in RFC 2030)
         byte [] NTPData  =   new   byte [NTPDataLength];

        
//  Offset constants for timestamps in the data structure
         private   const   byte  offReferenceID  =   12 ;
        
private   const   byte  offReferenceTimestamp  =   16 ;
        
private   const   byte  offOriginateTimestamp  =   24 ;
        
private   const   byte  offReceiveTimestamp  =   32 ;
        
private   const   byte  offTransmitTimestamp  =   40 ;

        
//  Leap Indicator
         public  _LeapIndicator LeapIndicator
        {
            
get
            {
                
//  Isolate the two most significant bits
                 byte  val  =  ( byte )(NTPData[ 0 ]  >>   6 );
                
switch  (val)
                {
                    
case   0 :  return  _LeapIndicator.NoWarning;
                    
case   1 :  return  _LeapIndicator.LastMinute61;
                    
case   2 :  return  _LeapIndicator.LastMinute59;
                    
case   3 :
                    
default :
                        
return  _LeapIndicator.Alarm;
                }
            }
        }

        
//  Version Number
         public   byte  VersionNumber
        {
            
get
            {
                
//  Isolate bits 3 - 5
                 byte  val  =  ( byte )((NTPData[ 0 ]  &   0x38 )  >>   3 );
                
return  val;
            }
        }

        
//  Mode
         public  _Mode Mode
        {
            
get
            {
                
//  Isolate bits 0 - 3
                 byte  val  =  ( byte )(NTPData[ 0 ]  &   0x7 );
                
switch  (val)
                {
                    
case   0 :
                    
case   6 :
                    
case   7 :
                    
default :
                        
return  _Mode.Unknown;
                    
case   1 :
                        
return  _Mode.SymmetricActive;
                    
case   2 :
                        
return  _Mode.SymmetricPassive;
                    
case   3 :
                        
return  _Mode.Client;
                    
case   4 :
                        
return  _Mode.Server;
                    
case   5 :
                        
return  _Mode.Broadcast;
                }
            }
        }

        
//  Stratum
         public  _Stratum Stratum
        {
            
get
            {
                
byte  val  =  ( byte )NTPData[ 1 ];
                
if  (val  ==   0 )  return  _Stratum.Unspecified;
                
else
                    
if  (val  ==   1 )  return  _Stratum.PrimaryReference;
                    
else
                        
if  (val  <=   15 )  return  _Stratum.SecondaryReference;
                        
else
                            
return  _Stratum.Reserved;
            }
        }

        
//  Poll Interval
         public   uint  PollInterval
        {
            
get
            {
                
return  ( uint )Math.Round(Math.Pow( 2 , NTPData[ 2 ]));
            }
        }

        
//  Precision (in milliseconds)
         public   double  Precision
        {
            
get
            {
                
return  ( 1000   *  Math.Pow( 2 , NTPData[ 3 ]));
            }
        }

        
//  Root Delay (in milliseconds)
         public   double  RootDelay
        {
            
get
            {
                
int  temp  =   0 ;
                temp 
=   256   *  ( 256   *  ( 256   *  NTPData[ 4 ]  +  NTPData[ 5 ])  +  NTPData[ 6 ])  +  NTPData[ 7 ];
                
return   1000   *  ((( double )temp)  /   0x10000 );
            }
        }

        
//  Root Dispersion (in milliseconds)
         public   double  RootDispersion
        {
            
get
            {
                
int  temp  =   0 ;
                temp 
=   256   *  ( 256   *  ( 256   *  NTPData[ 8 ]  +  NTPData[ 9 ])  +  NTPData[ 10 ])  +  NTPData[ 11 ];
                
return   1000   *  ((( double )temp)  /   0x10000 );
            }
        }

        
//  Reference Identifier
         public   string  ReferenceID
        {
            
get
            {
                
string  val  =   "" ;
                
switch  (Stratum)
                {
                    
case  _Stratum.Unspecified:
                    
case  _Stratum.PrimaryReference:
                        val 
+=  Convert.ToChar(NTPData[offReferenceID  +   0 ]);
                        val 
+=  Convert.ToChar(NTPData[offReferenceID  +   1 ]);
                        val 
+=  Convert.ToChar(NTPData[offReferenceID  +   2 ]);
                        val 
+=  Convert.ToChar(NTPData[offReferenceID  +   3 ]);
                        
break ;
                    
case  _Stratum.SecondaryReference:
                        
/// /     switch(VersionNumber)
                        
/// /     {
                        
/// /      case 3: // Version 3, Reference ID is an IPv4 address
                        
/// /       string Address = NTPData[offReferenceID + 0].ToString() + "." +
                        
/// /        NTPData[offReferenceID + 1].ToString() + "." +
                        
/// /        NTPData[offReferenceID + 2].ToString() + "." +
                        
/// /        NTPData[offReferenceID + 3].ToString();
                        
/// /       try
                        
/// /       {
                        
/// /        IPAddress RefAddr = new IPAddress(Address);
                        
/// /        IPHostEntry Host = DNS.GetHostByAddr(RefAddr);
                        
/// /        val = Host.Hostname + " (" + Address + ")";
                        
/// /       }
                        
/// /       catch(Exception)
                        
/// /       {
                        
/// /        val = "N/A";
                        
/// /       }
                        
/// /     
                        
/// /       break;
                        
/// /      case 4: // Version 4, Reference ID is the timestamp of last update
                        
/// /       DateTime time = ComputeDate(GetMilliSeconds(offReferenceID));
                        
/// /       // Take care of the time zone
                        
/// /       long offset = TimeZone.CurrentTimeZone.GetUTCOffset(DateTime.Now);
                        
/// /       TimeSpan offspan = TimeSpan.FromTicks(offset);
                        
/// /       val = (time + offspan).ToString();
                        
/// /       break;
                        
/// /      default:
                        
/// /       val = "N/A";
                        
/// /     }
                         break ;
                }

                
return  val;
            }
        }

        
//  Reference Timestamp
         public  DateTime ReferenceTimestamp
        {
            
get
            {
                DateTime time 
=  ComputeDate(GetMilliSeconds(offReferenceTimestamp));
                
//  Take care of the time zone
                 long  offset  =  Convert.ToInt64(TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now));
                TimeSpan offspan 
=  TimeSpan.FromTicks(offset);
                
return  time  +  offspan;
            }
        }

        
//  Originate Timestamp
         public  DateTime OriginateTimestamp
        {
            
get
            {
                
return  ComputeDate(GetMilliSeconds(offOriginateTimestamp));
            }
        }

        
//  Receive Timestamp
         public  DateTime ReceiveTimestamp
        {
            
get
            {
                DateTime time 
=  ComputeDate(GetMilliSeconds(offReceiveTimestamp));
                
//  Take care of the time zone
                 long  offset  =  TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Ticks;
                TimeSpan offspan 
=  TimeSpan.FromTicks(offset);
                
return  time  +  offspan;
            }
        }

        
//  Transmit Timestamp
         public  DateTime TransmitTimestamp
        {
            
get
            {
                DateTime time 
=  ComputeDate(GetMilliSeconds(offTransmitTimestamp));
                
//  Take care of the time zone    
                 long  offset  =  TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Ticks;
                TimeSpan offspan 
=  TimeSpan.FromTicks(offset);
                
return  time  +  offspan;
            }
            
set
            {
                SetDate(offTransmitTimestamp, value);
            }
        }

        
//  Reception Timestamp
         public  DateTime ReceptionTimestamp;

        
//  Round trip delay (in milliseconds)
         public   int  RoundTripDelay
        {
            
get
            {
                TimeSpan span 
=  (ReceiveTimestamp  -  OriginateTimestamp)  +  (ReceptionTimestamp  -  TransmitTimestamp);
                
return  ( int )span.TotalMilliseconds;
            }
        }

        
//  Local clock offset (in milliseconds)
         public   int  LocalClockOffset
        {
            
get
            {
                TimeSpan span 
=  (ReceiveTimestamp  -  OriginateTimestamp)  -  (ReceptionTimestamp  -  TransmitTimestamp);
                
return  ( int )(span.TotalMilliseconds  /   2 );
            }
        }

        
//  Compute date, given the number of milliseconds since January 1, 1900
         private  DateTime ComputeDate( ulong  milliseconds)
        {
            TimeSpan span 
=  TimeSpan.FromMilliseconds(( double )milliseconds);
            DateTime time 
=   new  DateTime( 1900 ,  1 ,  1 );
            time 
+=  span;
            
return  time;
        }

        
//  Compute the number of milliseconds, given the offset of a 8-byte array
         private   ulong  GetMilliSeconds( byte  offset)
        {
            
ulong  intpart  =   0 , fractpart  =   0 ;

            
for  ( int  i  =   0 ; i  <=   3 ; i ++ )
            {
                intpart 
=   256   *  intpart  +  NTPData[offset  +  i];
            }
            
for  ( int  i  =   4 ; i  <=   7 ; i ++ )
            {
                fractpart 
=   256   *  fractpart  +  NTPData[offset  +  i];
            }
            
ulong  milliseconds  =  intpart  *   1000   +  (fractpart  *   1000 )  /   0x100000000L ;
            
return  milliseconds;
        }

        
//  Compute the 8-byte array, given the date
         private   void  SetDate( byte  offset, DateTime date)
        {
            
ulong  intpart  =   0 , fractpart  =   0 ;
            DateTime StartOfCentury 
=   new  DateTime( 1900 ,  1 ,  1 ,  0 ,  0 ,  0 );  //  January 1, 1900 12:00 AM

            
ulong  milliseconds  =  ( ulong )(date  -  StartOfCentury).TotalMilliseconds;
            intpart 
=  milliseconds  /   1000 ;
            fractpart 
=  ((milliseconds  %   1000 )  *   0x100000000L )  /   1000 ;

            
ulong  temp  =  intpart;
            
for  ( int  i  =   3 ; i  >=   0 ; i -- )
            {
                NTPData[offset 
+  i]  =  ( byte )(temp  %   256 );
                temp 
=  temp  /   256 ;
            }

            temp 
=  fractpart;
            
for  ( int  i  =   7 ; i  >=   4 ; i -- )
            {
                NTPData[offset 
+  i]  =  ( byte )(temp  %   256 );
                temp 
=  temp  /   256 ;
            }
        }

        
//  Initialize the NTPClient data
         private   void  Initialize()
        {
            
//  Set version number to 4 and Mode to 3 (client)
            NTPData[ 0 ]  =   0x1B ;
            
//  Initialize all other fields with 0
             for  ( int  i  =   1 ; i  <   48 ; i ++ )
            {
                NTPData[i] 
=   0 ;
            }
            
//  Initialize the transmit timestamp
            TransmitTimestamp  =  DateTime.Now;
        }

        
//  Connect to the time server
         public   void  Connect()
        {
            
try
            {
                IPAddress hostadd 
=  IPAddress.Parse(TimeServer);
                IPEndPoint EPhost 
=   new  IPEndPoint(hostadd, Convert.ToInt32(TimePort));

                UdpClient TimeSocket 
=   new  UdpClient();
                TimeSocket.Connect(EPhost);
                Initialize();
                TimeSocket.Send(NTPData, NTPData.Length);
                NTPData 
=  TimeSocket.Receive( ref  EPhost);
                
if  ( ! IsResponseValid())
                {
                    
throw   new  Exception( " Invalid response from  "   +  TimeServer);
                }
                ReceptionTimestamp 
=  DateTime.Now;
            }
            
catch  (SocketException e)
            {
                
throw   new  Exception(e.Message);
            }
        }

        
//  Check if the response from server is valid
         public   bool  IsResponseValid()
        {
            
if  (NTPData.Length  <  NTPDataLength  ||  Mode  !=  _Mode.Server)
            {
                
return   false ;
            }
            
else
            {
                
return   true ;
            }
        }

        
//  Converts the object to string
         public   override   string  ToString()
        {
            
string  str;

            str 
=   " Leap Indicator:  " ;
            
switch  (LeapIndicator)
            {
                
case  _LeapIndicator.NoWarning:
                    str 
+=   " No warning " ;
                    
break ;
                
case  _LeapIndicator.LastMinute61:
                    str 
+=   " Last minute has 61 seconds " ;
                    
break ;
                
case  _LeapIndicator.LastMinute59:
                    str 
+=   " Last minute has 59 seconds " ;
                    
break ;
                
case  _LeapIndicator.Alarm:
                    str 
+=   " Alarm Condition (clock not synchronized) " ;
                    
break ;
            }
            str 
+=   " /r/nVersion number:  "   +  VersionNumber.ToString()  +   " /r/n " ;
            str 
+=   " Mode:  " ;
            
switch  (Mode)
            {
                
case  _Mode.Unknown:
                    str 
+=   " Unknown " ;
                    
break ;
                
case  _Mode.SymmetricActive:
                    str 
+=   " Symmetric Active " ;
                    
break ;
                
case  _Mode.SymmetricPassive:
                    str 
+=   " Symmetric Pasive " ;
                    
break ;
                
case  _Mode.Client:
                    str 
+=   " Client " ;
                    
break ;
                
case  _Mode.Server:
                    str 
+=   " Server " ;
                    
break ;
                
case  _Mode.Broadcast:
                    str 
+=   " Broadcast " ;
                    
break ;
            }
            str 
+=   " /r/nStratum:  " ;
            
switch  (Stratum)
            {
                
case  _Stratum.Unspecified:
                
case  _Stratum.Reserved:
                    str 
+=   " Unspecified " ;
                    
break ;
                
case  _Stratum.PrimaryReference:
                    str 
+=   " Primary Reference " ;
                    
break ;
                
case  _Stratum.SecondaryReference:
                    str 
+=   " Secondary Reference " ;
                    
break ;
            }
            str 
+=   " /r/nLocal time:  "   +  TransmitTimestamp.ToString();
            str 
+=   " /r/nPrecision:  "   +  Precision.ToString()  +   "  ms " ;
            str 
+=   " /r/nPoll Interval:  "   +  PollInterval.ToString()  +   "  s " ;
            str 
+=   " /r/nReference ID:  "   +  ReferenceID.ToString();
            str 
+=   " /r/nRoot Dispersion:  "   +  RootDispersion.ToString()  +   "  ms " ;
            str 
+=   " /r/nRound Trip Delay:  "   +  RoundTripDelay.ToString()  +   "  ms " ;
            str 
+=   " /r/nLocal Clock Offset:  "   +  LocalClockOffset.ToString()  +   "  ms " ;
            str 
+=   " /r/n " ;

            
return  str;
        }

        
//  The URL of the time server we're connecting to
         private   string  TimeServer;
        
private   string  TimePort;

        
public  SNTPTimeClient( string  host,  string  port)
        {
            TimeServer 
=  host;
            TimePort 
=  port;
        }
    }
}


调用:

            SNTPTime.SNTPTimeClient client  =   new  SNTPTime.SNTPTimeClient( " 210.72.145.44 " ,  " 123 " );
            client.Connect();
            
string  strTest  =  client.ToString();

 

原文摘自: http://www.cnblogs.com/easydata/archive/2008/04/01/1132917.html

C#利用wininet获取网页Cookie WinInet WinInet(“Windows Internet”)API帮助程序员使用三个常见的Internet协议,这三个协议是用于World Wide Web万维网的超文本传输协议(HTTP:Hypertext Transfer Protocol)、文件传输协议(FTP:File Transfer Protocol)和另一个称为Gopher的文件传输协议。 WinInet函数的语法与常用... 阅读详情

相关推荐

c# ntp时间 客户端

用法 SNTPTimeClient client = new SNTPTimeClient(“127.0.1.1”, "123"); client.Connect(); DateTime getEd = client.ReceiveTimestamp; SystemTime st=new SystemTime(); st.wDay=(ushort)getEd.Day; st.wDayOfWeek = (ushort)getEd.DayOfWeek; st.wHour = (ushort)getEd.Hour; st.wMiliseconds = (ushort)getEd.Millisecond; st.wMinute = (ushort)getEd.Minute; st.wMonth = (ushort)getEd.Month; st.wSecond = (ushort)getEd.Second; st.wYear = (ushort)getEd.Year; SNTPTimeClient.SetLocalTime(ref st); ntp服务器windows版下载http://www.meinberg.de/english/sw/ntp.htm

C#:获取网络上的日期、时间

public static string GetNetDateTime() { WebRequest request = null; WebResponse response = null; WebHeaderCollection headerCollection = null; string datetime = string.Empty; try.

鞠勇鸿的技术专栏 3024

QtWebApp的使用【在Qt中搭建HTTP服务器】(一)

用Qt和QtWebApp能够实现在C++中开发HTTP Web服务器应用程序。 首先,需要先安装Qt的软件开发工具包。点此下载 其次,下载最新的QtWebApp库。点此下载 下载并解压缩QtWebApp ZIP文件。你将会看到: 如何使用QtWebApp 1)将QtWebApp.zip文件解压到文件夹中,并创建一个名为“ MyFirstWebApp”的新Qt控制台项目。然后,建立如下文件结构: 2)将以下行添加到MyFirstWebApp项目的项目文件中: QT += network include(

饭的笔记本 2万+

C# 获取数据库服务器时间

 有的电脑在使用过程中,时间会变得不正确,要么快了,要么慢了,为避免时间错误,可以参考服务器时间,核对本机时间,如果时间相差不过10秒就任务本机时间时正确的。具体实现代码如下,创建静态类MyServer.cs  //获取数据库中的当前时间    public static class MyServer    {        static string connectString = "Data Source

flysh05的专栏 3432

【TiktokAPI】Tiktok直播API与实时互动功能开发完全指南

Tiktok直播API允许开发者创建、管理直播,并实现各种互动功能。/*** 获取Tiktok直播API访问令牌* @param {string} client_id - 应用ID* @param {string} client_secret - 应用密钥* @param {string} code - 授权码* @param {string} redirect_uri - 重定向URI* @returns {Promise<object>} 访问令牌响应*/try {}),

Mageia的专栏 3191

Linux运维踩坑实录:手把手教你修复LVM中PV显示[unknown]的诡异问题

本文详细解析了Linux运维中LVM物理卷(PV)显示[unknown]的故障现象及修复方法。通过分析问题根源、提供标准修复流程和特殊场景处理方案,帮助运维人员快速解决VG容量异常、PV状态丢失等问题,并分享预防措施与最佳实践,确保LVM存储系统的稳定运行。

weixin_26869081的博客 348

C# 时间计算(二)

在 C# 中,DateTime 用于处理日期和时间的内置类,其值范围为 00:00:00 (午夜) , 0001年1月1日,安诺·多米尼 (公历) 年12月31日晚上11:59:59 (公历 )。时间值以 100 纳秒为单位进行测量,称为刻度。特定日期是自 A.0001 年 1 月 1 日午夜 12:00 以来的时钟周期数, (日历中的 GregorianCalendar C.E.)。该数字不包括按闰秒添加的刻度。

熊思雨的博客 5135

Qt Installer Framework4.6.1的最基础使用1(win10+离线安装包 )

因工作需要,win程序发布后,打包成一可执行exe文件,且兼容win7系统笔者记录了一些关键要点,供有需要的小伙伴使用。

aggs1990的专栏 904

C#获取内网NTP服务器时间(通过IP或者域名)

【代码】C#获取内网NTP服务器时间(通过IP或者域名)

一个程序员的日常记录 892

保姆级教程:用COMSOL LiveLink™ for MATLAB 玩转自定义PDE,从理论到仿真一条龙

本文详细介绍了如何利用COMSOL LiveLink™ for MATLAB实现自定义PDE的从理论到仿真的完整流程。通过PDE模块与MATLAB的无缝集成,用户可以灵活处理非标准偏微分方程,适用于材料建模、传热传质验证等多物理场耦合研究。教程涵盖环境配置、方程标准化、界面操作及高级应用技巧,为工程仿真研究者提供原子级控制方案。

weixin_34098209的博客 354

FPGA+CUYSB3014实现USB3.0功能

CYUSB3014是赛普拉斯在近几年推出的新一代USB3.0的外设控制器,可以解决USB2.0带宽限制,或者单独开发USB协议和驱动的难题。赛普拉斯将CYUSB3014简称为EZ-USB FX3,具有高度的灵活特性,开发人员只需要下载FX3的固件库,就能使用USB3.0的功能。目前在一些电子产品中,使用主控器加PHY芯片最流行的方式是用FPGA+FX3这种搭配来实现USB3.0接口。......

D_Katter的博客 7065

C# 获取Internet时间

互联网上有免费的美国标准时间,即Nist时间,Windows中除微软自己提供的Internet时间外,也支持由Nist提供的多个Internet时间,可见此时间的权威性。获取Nist的方法非常简单,下面是一个封闭好的获取Nist时间的类:using System;using System.Collections.Generic;using System.Linq;using System.Net;

Felomeng的技术博客 8590

STM32F401RCT6最小系统原理图设计

STM32F401RCT6最小系统原理图设计一、主控芯片二、电源电路三、晶振电路三、下载电路四、完整电路图      本文章基于STM32F401RCT6进行最小系统原理图设计,包含主控芯片,电源,晶振电路,下载电路等几部分 一、主控芯片 主控芯片采用STM32F401RCT6,需注意: VBAT在不接电池的情况下需接3.3V,VDDAVREF+需接3.3V,否则会造成芯片供电不正常,无法启动和识别的情况 VDDAVREF+和VCAP1处电容需按照规格书

weixin_43278295的博客 2万+

C#_获取Internet时间(非本地时间)

远程连接时间服务器,获得时间后,可以选择输出,也可以使用WinAPI,设置为系统时间,代码如下: using System; using System.Data; using System.Text; using System.Runtime.InteropServices; using System.Net; using System.Net.Sockets; namespa...

weixin_30673715的博客 1042

uniapp [全端兼容] - 详细实现全局修改设置字体大小功能效果,统一修改页面字号字体大小,一键改变字号整个项目立即生效,大中小字号预设、老年人大字模式场景,uniApp全平台兼容控制页面字号大小

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,修改字体大小,一键调整UniApp字体大小,实时改变不用刷新,动态设置字体大小,uniapp全局修改字体字号大小,如何控制全局字号,可调整显示的字体,全项目生效,老年人大字模式,改变所有页面的字体,全局设置字体大小,实现小中大的字体切换,设置改变全局字体大小功能,如何做到全平台兼容,H5APP实现全局字体大小调整,不兼容报错,用户设置字号,全局设置应用字体大小,大中小字体修改,页面设置page-me

🏆 前端领域优质创作者 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C#获取Internet服务器的时间

usingSystem;usingSystem.Net;usingSystem.Net.Sockets;namespaceSNTPTime{//Leapindicatorfieldvaluespublicenum_LeapIndicator{NoWarning,//0-NowarningLastMin...

abc11111118的博客 359

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C#获取时间

获取Internet服务器的时间 using System; using System.Net; using System.Net.Sockets; namespace SNTPTime { // Leap indicator field values public enum _LeapIndicator { NoWa...

dkopg24406的专栏 339

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C#从网络获取时间更新本机时间

因本机主板有问题,一断电就丢失时间,所以想了个方法从网络上获取最新时间,这样就不用自己去对时,网络一通,时间就能自动校正。using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using

蓝木屋 1万+

从Internet时间服务器获取标准格林尼治时间

从Internet时间服务器获取标准格林尼治时间&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt; 由于本机系统时间不准确,所以决定从Internet 时间服务器获取标准时间来校正 系统时间,说干就干。 程序设计步骤如下: 1、 新建一个工程; 2、 在窗体上放一个TE...

绝影メ之殇 412

C# Winform小程序:局域网设置NTP服务器、实现时间同步

设置NTP服务器: NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。 局域网不能连接Internet,可以设置一台计算机为NTP服务器。 依次点击:开始---运行---regedit,进入注册表; 依次展开:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3...

weixin_33766805的博客 1181

计算机时间与网络时间无法同步,终于解决了本地计算机时间无法与Internet时间服务器同步的难题...

一:如何更新本地计算机时间与Internet时间服务器同步的操作方法如下,首先在任务栏右边那里找到时间图标,直接双击,弹出如下的对话框;如上图,切换到“Internet 时间”选项卡,从服务器那里选择一种服务器时间,之后点击“立即更新”即可实现;本来嘛,操作就是这样简单,但是俺的无论如何都不成功,曾经见到过同学、同事和朋友的计算机,一更新立马成功,为什么偏偏我的就不行呢,这不明摆在想惹毛我了吗?俺...

weixin_39593718的博客 609

win10如何调整计算机时间同步,win10电脑时间与Internet同步的设置方法

大家都知道Internet时间通常十分准确,想要win10 32位系统电脑时间保持在一个精准状态,就可以与Internet时间同步,避免时间偏差对我们工作和生活造成影响。接下去跟随小编脚步一起看下win10电脑时间与Internet同步的设置方法。具体方法如下:1、右击此电脑,点击属性;2、点击控制面板主页;3、点击时钟和区域;4、点击日期和时间;5、点击Internet时间选项卡,点击更改设置;...

weixin_42505503的博客 3562

C#设置当前程序通过IE代理服务器上网

注意:以下设置只在当前程序中有效,对IE浏览器无效,且关闭程序后,自动释放代码。 Proxy.cs类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; public stati

每天进步一点点 5734
上一篇: (转)自动投票中验证码识别问题初探
下一篇: 貌似不错的PPC手机软件开发工具basic4ppc
lanman
博客等级 码龄25年 56粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值