toufou2006
Messages postés89Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention17 février 2014
-
16 janv. 2010 à 17:03
toufou2006
Messages postés89Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention17 février 2014
-
4 févr. 2010 à 12:02
Donc voila tout mon code
j ai donc reussi a connecter le clien et el serveur
a traiter les infos recu du plug in 3d et les preparer
pour l'envoie
les données sind dans la variable df
je les affiche provisoirement dans textbox1
alors si textbox1 change envoie de donnée (df)au serveur
si df n a pas changé au bout de 30 secondes il faut forcé l'envoie de df
Pouvez vous m aider ?
Si vous avez besoin d infos concerant la manipulation
du plug in 3D de blaxxun , je me ferai un plaisir de vous les donnér
sachez que je serai un des seul a pouvoir vous les donner car blaxxun a désormais fermé (d ici fin 2010 un manuel en francais et pour vb, doit voir le jour mais contacter moi pour plus d info)
---------------------
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Net.Sockets.SocketAsyncEventArgs
Public Class Form1
Inherits System.Windows.Forms.Form
Dim SocketClient As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim port As Int32 = 23
Dim shost As IPHostEntry = Dns.GetHostByAddress("192.168.0.10")
Dim sip As IPAddress = shost.AddressList(0)
Dim sipe As New IPEndPoint(sip, port)
Dim bu(655360) As Byte
Dim sped
Dim dataaadapter
Dim datatransformer
Dim pos As String
Dim x
Dim y
Dim z
Dim ox
Dim oy
Dim oz
Dim oa
Dim df As String
Dim avatar
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
avatar = "http://www.b-ecard.net/no_cache/oursrouge.wrl"
cc3d.url = "http://megalopolis.free.fr/megalopolis.wrl"
cc3d.setMyAvatarURL(avatar)
End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
shost = Dns.GetHostEntry("127.0.0.1")
port = "23"
SocketClient.BeginConnect(sipe, AddressOf ConnectionConnectCallback, SocketClient)
PictureBox1.Enabled = False
End Sub
Private Sub ConnectionConnectCallback(ByVal asyncResult As IAsyncResult)
Try
SocketClient.EndConnect(asyncResult)
PictureBox1.BackColor = Color.Green
Catch
PictureBox1.BackColor = Color.Red
MessageBox.Show("Echec de connexion, Le serveur est arrété ou surchargé revenez plus tard") : End
End Try
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
sped = cc3d.getCurrentFrameRate()
Label1.Text = sped
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
cc3d.getViewpointByValue(x, y, z, ox, oy, oz, oa, 1)
Dim xaenvoyer As String = FormatNumber(x, 2)
Dim yaenvoyer As String = FormatNumber(y, 2)
Dim zaenvoyer As String = FormatNumber(z, 2)
Dim oxaenvoyer As String = FormatNumber(ox, 2)
Dim oyaenvoyer As String = FormatNumber(oy, 2)
Dim ozaenvoyer As String = FormatNumber(oz, 2)
Dim oaaenvoyer As String = FormatNumber(oa, 2)
Dim df As String
Dim pseudo = "marc"
Label2.Text = xaenvoyer
Label3.Text = yaenvoyer
Label4.Text = zaenvoyer
Label5.Text = oxaenvoyer
Label6.Text = oyaenvoyer
Label7.Text = ozaenvoyer
Label8.Text = oaaenvoyer
df = pseudo + "%" + "http://www.b-ecard.net/no_cache/oursrouge.wrl" + "%" + xaenvoyer + "%" + yaenvoyer + "%" + zaenvoyer + "%" + oxaenvoyer + "%" + oyaenvoyer + "%" + ozaenvoyer + "%" + oaaenvoyer
TextBox1.Text = df
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
End Class
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 janv. 2010 à 02:44
BONJOUR
aussi
Bon.
Tu manipules un plugin 3D. C'est bien.
Tu montres un code. Ok
Tu nous dis ce que tu as faire.
Tu nous demandes de t'aider ... mais on ne sais pas sur quoi tu bloques.
Quel rapport entre un plugin 3D et des sockets ? mystère.
"alors si textbox1 change envoie de donnée (df)au serveur" Je ne vois aucun code dans TextBox1_TextChanged
Je ne vois nulle part non plus de code qui fasse un SocketClient.Send
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
toufou2006
Messages postés89Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention17 février 20141 17 janv. 2010 à 21:31
Bonsoir
premierement Dsl pour l'oubli au debut du post
----------------------------------------------
Ensuite suffit t il de rajouter
SocketClient.Send df
pour envoyer la variable au serveur ?
----------------------------------------------
si oui ok cool (je m en vais vite tester),
si non peux tu m en dire plus s'il te plait ?
ensuite dans Timer2_Tick je veux lancer le timer3
au cas ou df ne change pas
''''''
si df ne change pas active timer3 qui a la fin des 30 secondes va envoyer df
et se reinitialiser a 0
''''''
-------------------------------
j espere que je suis pas trop brouillon dans ma tete c est aussi bordelique que mon code :) ^^
Merci d avance pour ta patience :) ^
et merci à tous pour votre aide
Ps: j ai affiché volontairement le code entier de mon appli
car j ai souvent poser al question sur comment arrondir les variables
a 2 decimales et meme si tres nombreuses les réponses m on toujours parue trop compliqués , alors, je pense que la c est simple , sinon dites le moi
5) Sinon le fonctionnement de tes sockets est assez anarchique ... et très imcomplet.
Je ne vois pas pourquoi tu fais çà, tu demande à l'appli de faire un Reverse DNS depuis l'adresse, pour ensuite récupéré l'IP du Host ??
Dim shost As IPHostEntry = Dns.GetHostByAddress("192.168.0.10")
Dim sip As IPAddress = shost.AddressList(0)
PS : De plus la méthode "GetHostByAddress" est obsolete;
Fais plutot : Dim Sip As IPAddress = IPAddress.Parse("192.168.0.10")
Ici tu te repete : port = "23", tu le fais déja dans les déclarations (ce que je déconseil d'ailleur)
Idem ici : shost = Dns.GetHostEntry("127.0.0.1")
ou tu te contredit avec : Dim shost As IPHostEntry = Dns.GetHostByAddress("192.168.0.10")
6) Après pour ta variable df, tu fais une sorte de ligne format CSV, qui de plus est déclaré localement dans ton Timer2_Tick, je ne pense pas que ce soit la bonne méthode.
Le mieux serait de sérialiser un objet pour transmettre tes infos.
Private Pseudo As String
Private xaenvoyer As Integer
Private yaenvoyer As Integer
Private zaenvoyer As Integer
Private oxaenvoyer As Integer
Private oyaenvoyer As Integer
Private ozaenvoyer As Integer
Private oaaenvoyer As Integer
#Region "Proprietés"
bla bla bla ...
#End Region
#Region "Méthodes"
bla bla bla ...
#End Region
#Region "Constructeur"
bla bla bla ...
#End Region
End Class
En conclusion je dirais qu'il faut déja que tu t'organises, et que tu fasse un truc un peu plus claire avant d'attaquer les sockets ... et pourquoi pas reprendre le .Net à la base (surtout la POO) !?
En plus si tu veux faire çà en mode asynchrone, çà va etre le vrai plat de spaghetties vu comment çà commence ...
Allé courage, refais nous tout çà au propre et on verra le reste après, et bon code ...
/\_/\
( o.o ) ~ ElGuevel ~
> ~ <
Vous n’avez pas trouvé la réponse que vous recherchez ?
toufou2006
Messages postés89Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention17 février 20141 4 févr. 2010 à 12:02
Salut :) ^^
Ok ok merci :) ^^
Vais essayer de mettre ca au propre (enfin, vais allez voir comme ca marche les classes (je trouvais que c etait deja assez propre, par rapport a ce que je fais d 'habitude ) ^^