ASP中实现winsock通信

zxwedu 2005-07-01 11:01:25
问大家一个问题:
项目情况如下:
我这边是网站,向某一服务器通过winsock方式发送一条数据(包括卡号+年月比如:2005888*200506),服务器代理接到数据后返回数据(返回2005888卡的2005年6月的相关数据),我这边在网页上显示出来。

希望大家能提供代码
...全文
171 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
召耳先生 2005-07-01
  • 打赏
  • 举报
回复
可否有一个完整的实例??谢了!!学习!
zxwedu 2005-07-01
  • 打赏
  • 举报
回复
ASP中实现winsock通信

需要的ASP代码中实现的呀
白夜花寒 2005-07-01
  • 打赏
  • 举报
回复
Option Explicit

Private Declare Function SetSystemTime Lib "kernel32" _
(lpSystemTime As SYSTEMTIME) As Long

Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Dim sNTP As String ' 服务器返回的32位时间标签
Dim TimeDelay As Single '延时



Private Sub cmdExit_Click()
Unload Me
End Sub

'对时
Private Sub cmdSync_Click()
cmdExit.Enabled = False
StinkySock.Close
sNTP = Empty
StinkySock.RemoteHost = Combo1.Text
StinkySock.RemotePort = 37 'NTP servers port
StinkySock.Connect
End Sub

'初始化窗体
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
'添加对时服务器
Combo1.AddItem "ntp.cs.mu.oz.au"
Combo1.AddItem "tock.usno.navy.mil"
Combo1.AddItem "tick.usno.navy.mil"
Combo1.AddItem "swisstime.ethz.ch"
Combo1.AddItem "ntp-cup.external.hp.com"
Combo1.AddItem "ntp1.fau.de"
Combo1.AddItem "ntps1-0.cs.tu-berlin.de"
Combo1.AddItem "time.ien.it"
Combo1.AddItem "ntps1-1.rz.Uni-Osnabrueck.DE"
Combo1.AddItem "tempo.cstv.to.cnr.it"
Combo1.ListIndex = 0
End Sub

'获取数据
Private Sub StinkySock_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
StinkySock.GetData Data, vbString
sNTP = sNTP & Data
End Sub
'连接时设置延时
Private Sub StinkySock_Connect()
TimeDelay = Timer
End Sub

'关闭时设置时间
Private Sub StinkySock_Close()
On Error Resume Next
Do Until StinkySock.State = sckClosed
StinkySock.Close
DoEvents
Loop
'计算延时
TimeDelay = ((Timer - TimeDelay) / 2)
'设置时间
Call SyncClock(sNTP)
cmdExit.Enabled = True
End Sub

'转换和设置来自NTP的时间
Private Sub SyncClock(tStr As String)
Dim NTPTime As Double
Dim UTCDATE As Date
Dim LngTimeFrom1990 As Long
Dim ST As SYSTEMTIME
tStr = Trim(tStr)
If Len(tStr) <> 4 Then
MsgBox "NTP Server returned an invalid response.", vbCritical, "Invalid Response "
cmdExit.Enabled = True
Exit Sub
End If
NTPTime = Asc(Left$(tStr, 1)) * 256 ^ 3 + Asc(Mid$(tStr, 2, 1)) * 256 ^ 2 + _
Asc(Mid$(tStr, 3, 1)) * 256 ^ 1 + Asc(Right$(tStr, 1))
LngTimeFrom1990 = NTPTime - 2840140800#
UTCDATE = DateAdd("s", CDbl(LngTimeFrom1990 + CLng(TimeDelay)), #1/1/1990#)
'计算时间
ST.wYear = Year(UTCDATE)
ST.wMonth = Month(UTCDATE)
ST.wDay = Day(UTCDATE)
ST.wHour = Hour(UTCDATE)
ST.wMinute = Minute(UTCDATE)
ST.wSecond = Second(UTCDATE)
'设置时间
Call SetSystemTime(ST)
MsgBox "Clock synchronised succesfully.", vbInformation, "Tick Tock"
cmdExit.Enabled = True
End Sub
zxwedu 2005-07-01
  • 打赏
  • 举报
回复
我需要代码来学习一下
zxwedu 2005-07-01
  • 打赏
  • 举报
回复
向某一服务器通过winsock方式发送一条数据(包括卡号+年月比如:2005888*200506),是 做在网页上的

请提供帮助 谢谢 在线等你
白夜花寒 2005-07-01
  • 打赏
  • 举报
回复
问你个问题你是要在客户端做还是在服务端做?

还有winsock控件的使用方法很简单,我的代码有无数的现成的,关键是你需要什么的?

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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