bonjour tout le monde...
nouveau depuis hier soir dans le monde asp .net, et j'ai déja besoin d'aide !
je code déja depuis un certain temps en vb.net et j'essai de mettre a profit mes connaissances pour developper une "application web asp.net", mais je sais pas trop si on appelle ca comme ça...
j'explique rapidement mon problème.
je désire qu'en se connectant sur un page un utilisateur puisse savoir si un serveur distant répond correctement.
voila le code très moche que j'ai pondu car j'ai du mal a comprendre ou quand et comment placer le "response.write" du serveur pour générer la page web pour le client qui se connecte.
dans mon fichier default.aspx.vb -------------
Partial
Class _DefaultInherits System.Web.UI.PagePrivate CurrentSocket AsNew System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)Private ResolvingConnect AsBoolean = FalsePrivate ResolvingReceive AsBoolean = FalsePrivate TimeOut AsDate = NothingProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.LoadTryCurrentSocket.BeginConnect(
"blabla.machin.com", 4527, New AsyncCallback(AddressOf ConnectingCallBack), CurrentSocket)Catch ex As ExceptionEndTryTimeOut = System.DateTime.Now.AddMilliseconds(2000)
DoIf System.DateTime.Now >= TimeOut Then Response.Write("Connexion TimeOut !") ExitDoEndIfIf ResolvingConnect = TrueThen If CurrentSocket.Connected = TrueThen Response.Write("Connected !") Else Response.Write("Could not connect the server !") EndIf ExitDoEndIfLoopTry CurrentSocket.Disconnect(
False) CurrentSocket.Close()
Catch ex As Exception EndTryEndSubPrivateSub ConnectingCallBack(ByVal ar As IAsyncResult) ResolvingConnect =
TrueEndSub
voila c'est tres moche se Do .... Loop, mais si je ne fait pas ca, la connexion asynchrone est réalisé apres la fin de la procédure Page_Load et je ne peux pas faire de response.write
Quelqu'un a une solution ? Est ce que je peux bloquer le processus d'envoi de la réponse en attendant de que le ConnectingCallBack ai lieu ?
Merci d'avance