Enviar un textbox con VB

Iniciado por Kizar, 18 Mayo 2005, 14:53 PM

0 Miembros y 1 Visitante están viendo este tema.

Kizar

Hola

El problema es el siguiente:
Estoy creando un chat para un troyano, cuando mando los comandos para que el formulario del chat sea visible lo hace a la perfeccion, pero cuando quiero mandar un texto de uno al otro lo que el servidor me recibe es lo que le e mandado y como cada vez le mando un texto diferente el no lo reconoce.

Ejemplo.

Con el cliente mando "OPENCHAT"
El servidor  lo recibe y se pone la propiedad visible del formulario del chat en true. Hasta aqui bien.

Cuando con el cliente le mando los datos de un textbox por ejempo "hola" al servidor le llega eso y no sabe que acer con ello.

Ayuda please!!!

Salu2

Simbelmynë

Trabajalo con un listbox en el servidor...
Y cada vez que envias texto desde el cliente hacelo de la forma:
winsock1.senddata "mensaje" & texto
donde "mensaje" solamente sera una norma para que el servidor interprete que se trata de un mensaje que le envias y lo inserte en el listbox, y texto es una variable que almacena el mensaje que escribiste en el textbox del cliente.
Luego, en el evento data arrival del servidor:
if left(datos, 7) = "mensaje" then
list1.additem mid(datos, 8)
end if
Mas o menos lo mismo para las respuestas por parte del servidor...
Un saludo

p0w3r f1y

También se puede hacer de esta forma ( es la que uso yo ):
Para enviar cualquier orden primero mandas el comando, separado de lo que varía ( Ej: comando: "CHAT", lo que varía: "hola....")
Y para enviarlo pues unes las dos cadenas con un carácter no muy común o con otra cadena. (ej: WS.sendata "CHAT" & "|||" & variabletexto)
Eso lo haces para todos los comandos, aunque sea por ejemplo abrir el cd y no haya que enviar dato que varíe, pues pones por ej: "ABRIRCD|||OK"
Y luego en el arrival del winsock "partes" la cadena y con un select case vas buscando en función del comando. Ej:

'dentro del winsock
Dim datos as string
WS.getdata datos
Dim separar as variant
separar=Split(datos, "|||")' crea un array en el que mete los
'datos separados por |||, puede haber todos los comandos
'secundarios que quieras
If ubound(separar) then' si existe algun array....
Select case separar(0) ' aqui estará el comando, ej: "CHAT"
Case "CHAT"
Msgbox separar(1) ' en separar(1) estaría el texto, ej: "Hola"
Case...
Case...
End Select
End if



Espero que te sirva.
Salu2

Kizar

Hola

Estoy provando con el codigo que a puesto p0w3r f1y.

Pero no lo entiendo bien y me da un error "el subindice esta fuera del intervalo"

Aunque el servidor recibe correctamente los datos "CHAT|||el mensaje"

Aqui esta el codigo a ver si me podeis ayudar o sino ponerme un ejemplo con un cliente y un servidor.

CLIENTE:


Private Sub Command_enviar_Click()
Dim datos As String
datos = "CHAT" & "|||" & Text_nick.text & " :  " & Text_mensaje.text
List_chat.AddItem Text_nick.text & " :  " & Text_mensaje.text
Form_menu.Winsock_menu.SendData datos
Text_mensaje.text = ""
End Sub


SERVIDOR:


Dim datos As String
Dim separar As Variant
Winsock_server.GetData datos
separar = Split(datos, "|||")
' crea un array en el que mete los
'datos separados por |||, puede haber todos los comandos secundarios que quieras
If UBound(separar) Then ' si existe algun array....
Select Case separar(0) ' aqui estará el comando, ej: "CHAT"
Case "CHAT"
MsgBox separar(1) ' en separar(1) estaría el texto, ej: "Hola"

End Select
End If


Gracias de todas maneras.
Salu2

p0w3r f1y

Igual es por lo de If Ubound(separar), no me acuerdo muy bien de como iba eso, prueba con if not ubound(separar), o quítalo....Esque hace mucho que no hago nada en vb, pero eso sirve para que si te mandan un comando "mal construido", osea, que no tenga el separador que tu has asignado pues no entre en el select.
Salu2