Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - n3ts4mura1

#2
Programación Visual Basic / Re: Pregunta dicil.
29 Agosto 2006, 01:28 AM
pero el cliente tambien tendria que estar en una matriz de conexione scierto?
#3
Programación Visual Basic / Pregunta dicil.
28 Agosto 2006, 19:56 PM
Hola buenas primero que nada decirle que tiene relacion con socket.



Estoy haciendo un programa tipo chat cliente y servidor el servidor esta con una matriz de socket que quiere decir esto que mas de 1 cliente se pueden conectar a este servidor ahora cual es mi duda muchos clientes se pueden conectar y enviar el mesanje al servidor pero yo quiero discriminar cuando envio el mensaje del servidor a los clientes solo se lo envia al primero que se conecto lo que yo quiero hacer es escoger a que cliente enviar el mensaje y esa es mi duda haber si alguien me ayuda.


Si alguien necesita codigo para ver o tratar de ayudarme deme su correo lo agrego bueno saludos.

Agradeceria la ayuda estoy estancado con esto =(.
#4
Alguien sabe como cambiarle de color al scrollbars del richtextbox , Bueno saludos cuidense.
#5
Sacado de un libro voy a escribir lo que este dice luego escribo mi cofigo que me falla:
************************************************************ ***********
Dice:
****
El codigo que se muestra a continuacion presupone que existe un control Winsock en un formulario llamador sckServer y que su propiedad Index tiene el valor 0,por lo que el control forma parte de una matriz de controles.En la seleccion Declaraciones se declara una variable intMax a nivel de modulo.En el evento Load del formulario,intMax tiene establecido el valor 0 y la propiedad LocalPort del primer control de la matriz el valor 1001.Despues,se invoca el metodo Listen en el control,convirtiendolo en el control "que escucha".A medida que llega cada solicitud de conexion,el codigo comprueba si el indice es 0 (el valor del control "que escucha"). Si es asi,este control aumenta la variable intMax y utiliza ese numero para crear una nueva instancia del control.Esta nueva instancia se utiliza para aceptar una solicitud de conexion.

Ahora el codigo que sale en el libro es:
*****************************************
Private intMax As Long

Private Sub Form_load()
        intMax=0
        sckServer(0).LocalPort=1001
        sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
        If Index=0 Then
           intMax=intMax+1
           Load sckServer(intMax)
           sckServer(intMax).LocalPort=0
           sckServer(intMax).Accept requestID
           Load txtData(intMax)
        End If
End Sub

**********************************

Ahora mi codigo:
***************

Servidor: Un control winsock con nombre sckServer 2 cajas de texto y un boton para enviar el texto.

*****************************
Private intMax As Long

Private Sub Command1_Click()
Dim enviar As String
enviar = Text2.Text
sckServer(Index).SendData enviar
End Sub

Private Sub Form_Load()
    intMax = 0
    sckServer(0).LocalPort = 1001
    sckServer(0).Listen
End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    If Index = 0 Then
        intMax = intMax + 1
        Load sckServer(intMax)
        sckServer(intMax).LocalPort = 0
        sckServer(intMax).Accept requestID
        Load txtdata(intMax)
    End If
End Sub

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim datos As String
sckServer(Index).GetData datos 'aca nose si es intmax o index
Text1.Text = Text1.Text + datos
End Sub

***************************************
Cliente:un control winsock se llama sckCliente 2 cajas de texto 2 botones uno para enviar y otro boton para conectar.


Private Sub Command1_Click()
sckCliente.RemotePort = 1001
sckCliente.RemoteHost = "192.168.0.1"
sckCliente.Connect
End Sub

Private Sub Command2_Click()
Dim enviar As String
enviar = Text2.Text
sckCliente.SendData enviar
End Sub

Private Sub sckCliente_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
sckCliente.GetData datos
Text1.Text = Text1.Text + datos
End Sub

******************************************


me fallan tanto el cliente como el servidor al tratar de enviar el mensaje de un lado al otro pero se conectan .

Agradeceria mucho alguien me diera una mano desde yan muchas gracias saludos a todos xD.
#7
Bueno lo tengo comentado pero = da error =(
#8
Server:
Private Sub Form_Load()
intmax = 0
tcpServer(0).LocalPort = 1001
tcpServer(0).Listen
End Sub

Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
        intmax = intmax + 1
        Load tcpServer(intmax)
        tcpServer(intmax).Accept requestID
        Load txtData(intmax)
    End If
End Sub

Private Sub tcpServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData
End Sub

Private Sub txtSendData_Change()
tcpServer.SendData txtSendData.Text
End Sub

Me da error en el server .
y el cliente es esto

Private Sub cmdConnect_Click()
tcpClient.Connect
End Sub

Private Sub Form_Load()
tcpClient.RemoteHost = "192.168.0.1"
tcpClient.RemotePort = 1001
End Sub

Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
txtOutput.txt = strData

End Sub

Private Sub txtSendData_Change()
tcpClient.SendData txtSendData
End Sub
#9
Programación Visual Basic / Re: Apis plz.
18 Agosto 2006, 05:36 AM
de hay las saque pero bueno = gracias
#10
Haber si esto te sirve:

Private Sub ws_ConnectionRequest(index As Integer, ByVal requestID As Long)
    Dim actIndex    As Integer
    Dim strData     As String
    On Local Error Resume Next
    Err.Clear
    '//Un usuario solicita nueva conexión y verificamos que se realiza
    '//a través del canal 0 de WS que es el servidor a la escucha.
    If index = 0 Then
        If freeSockets.Count <> 0 Then
            actIndex = freeSockets(1)
            freeSockets.Remove 1
            '//Aceptar conexión recuperando hilo
            users(actIndex) = ""
            rqs(actIndex) = CStr(requestID)
            ws(actIndex).LocalPort = 0
            ws(actIndex).Accept requestID
        Else
            idServer = idServer + 1
            actIndex = idServer
            '//Aceptar conexión en nuevo hilo
            ReDim Preserve users(1 To actIndex)
            ReDim Preserve rqs(1 To actIndex)
            users(actIndex) = ""
            rqs(actIndex) = CStr(requestID)
            Load ws(actIndex)
            ws(actIndex).LocalPort = 0
            ws(actIndex).Accept requestID
        End If
    End If
    '//preparar cadena de identificación
    strData = "[REQUEST]|" + CStr(requestID)
    sendSERVER actIndex, strData
End Sub