我最近开发并完成了一个像目标一样的软件。 但问题是,服务器对本地朋友来说效果很好,因为他们距离服务器只有25英里,所以它没有延迟。 但是当上传到Web主机时,每次ping服务器时都会滞后。 该服务器采用PHP格式,因此无需再以400美元/月的价格购买专用计算机。 这是客户经常要求的功能:
Public Function GetPage(ByVal url As String)
Dim WReq As HttpWebRequest
Dim WResp As WebResponse
Dim sr As IO.StreamReader
Try
WReq = WebRequest.Create(url)
WReq.CookieContainer = cookies
WReq.Timeout = "120000"
WResp = WReq.GetResponse()
sr = New IO.StreamReader(WResp.GetResponseStream())
GetPage = sr.ReadToEnd()
WResp.Close()
Return (GetPage)
Catch err As SystemException
MsgBox("err message: " & err.ToString & vbCrLf)
Catch ex As Exception
MsgBox("err message: " & ex.ToString & vbCrLf)
End Try
End Function
演示网址会是这样的 http://localhost/chat/newpm.php?to=User&msg=Hello 那么OSCAR是如何做到的(AOL的平台,又称AIM) 和msg怎么样? gtalk或其他大客户这样做吗?
我正在考虑重新编码getpage函数,以便它连接到TCP服务器并不断等待新消息,如果主机在美国并且客户端不在,那么我仍然不确定这是否会导致延迟(例如)。 你能帮我解决这个问题吗?
答案 0 :(得分:0)
超时非常高。在收到响应流后检查应用是否关闭连接。计算机接受多少个连接,否则连接将锁定请求,直到一个空闲为止。
答案 1 :(得分:0)
好的回答John Feminella: 我完全同意,AIM MSN和其他人如何解决这个问题呢? Dbasnett:return(GetPage)将返回所请求页面的结果,这只是代码的主要信息,每秒至少调用两次。 约翰桑德斯: 我不明白“使用”块的目的或功能,我添加了catch,以便在服务器超时或无法解析时不通知用户。 Sein Kraft: 超时只有2分钟,我不认为 GetPage(Login.server&“pms.php?to =”& to) 这就是全部,然后它会解析响应的结果。