Visual Basic.NET - ENVIAR ARCHIVOS POR SOCKET

 
Vista:

ENVIAR ARCHIVOS POR SOCKET

Publicado por Jorge (1 intervención) el 05/06/2006 16:49:52
Alguno de uds, sabe como poder enviar archivos y texto por medio de los socket
no se si podrian facilitarme un codigo de como se abre un socket y como enviar cosas atraves de el.

Es para un proyecto de Redes debo hacer un Messenger para una red Local. jajajaja lo mas parecido al MSN.

Les agradeceria cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ENVIAR ARCHIVOS POR SOCKET

Publicado por Byron-cu (1 intervención) el 24/06/2006 01:31:44
Apenas te respndan seriamente me pasas la vara
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ENVIAR MENSAJES MEDIANTE SOCKET

Publicado por Jairo (1 intervención) el 30/06/2006 22:49:40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Dim SocketMensajes As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
    Dim Hilo As Thread
    Dim Saliendo As Boolean = False
    Dim DireccIP As String, ContenidoMensaje As String
form_load
'Separamos el puerto 200145 para usarlo en nuestra aplicación
            SocketMensajes.Bind(New IPEndPoint(IPAddress.Any, 21145))
            'SocketComunicacion.Bind(New IPEndPoint(System.Net.IPAddress.Any, 20145))
 
            'Habilitamos la opción Broadcast para el socket
            SocketMensajes.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1)
 
            Hilo = New Thread(AddressOf RecibirDatos) 'Crea el hilo
            Hilo.Start() 'Inicia el hilo
 
Private Sub txtMensaje_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtMensaje.KeyUp
 
        Try
 
            If e.KeyCode = Keys.Enter Then
                If lstContactos.SelectedIndex >= 0 Then
 
                    Dim Destino As New IPEndPoint(IPAddress.Parse(lstIP.Items.Item(lstContactos.SelectedIndex).ToString), 21145)
 
                    'Buffer que guardará los datos hasta que se envíen
                    Dim DatosBytes As Byte() = Encoding.Default.GetBytes(Usuario & ":" & txtMensaje.Text)
 
                    'Envía los datos
                    SocketMensajes.SendTo(DatosBytes, DatosBytes.Length, SocketFlags.None, Destino)
                    txtConversacion.Text = Usuario + ":" + vbCrLf + txtMensaje.Text + vbCrLf + vbCrLf + txtConversacion.Text
                    txtMensaje.Text = ""
 
                Else
 
                    MsgBox("Seleccione un usuario a quien enviar el mensaje", MsgBoxStyle.Information, "CHAT\Envio de Mensajes")
 
                End If
            End If
 
        Catch ex As Exception
 
            MsgBox("Error: " & ex.Message, MsgBoxStyle.Critical, "CHAT\Error al enviar mensaje")
 
        End Try
 
    End Sub
 
    Private Sub RecibirDatos()
 
        'Mientras el inidicador de salida no sea verdadero
        Do Until Saliendo
 
            'Variable para obtener la IP de la máquína remitente
            Dim IPRemota As New IPEndPoint(IPAddress.Any, 0)
            Dim Remitente, Mensaje As String
            Dim i, x As Long
 
            'Variable para almacenar la IP temporalmente
            Dim IPRecibida As EndPoint = CType(IPRemota, EndPoint)
            Dim RecibirBytes(255) As Byte 'Buffer
            Dim Datos As String = "" 'Texto a mostrar
 
            Try
                'Recibe los datos
                SocketMensajes.ReceiveFrom(RecibirBytes, RecibirBytes.Length, SocketFlags.None, IPRecibida)
 
                'Los convierte y lo guarda en la variable Datos
                Datos = Encoding.Default.GetString(RecibirBytes)
 
            Catch ex As SocketException
 
                If ex.ErrorCode = 10040 Then 'Datos muy largos
 
                    Datos &= "[truncado]" 'Añade la cadena "[truncado]" al texto recibido
 
                Else
 
                    'Muestra el mensaje de error
                    MsgBox("Error '" & ex.ErrorCode.ToString & "' " & ex.Message, MsgBoxStyle.Critical, "Error al recibir datos")
 
                End If
            End Try
 
            'Convierte el tipo EndPoint a IPEndPoint con sus respectivas variables
            IPRemota = CType(IPRecibida, IPEndPoint)
 
            'Guarda los datos en variables temporales
            DireccIP = IPRemota.Address.ToString
            ContenidoMensaje = Datos.ToString
 
            For i = 1 To Len(ContenidoMensaje)
 
                If Mid(ContenidoMensaje, i, 1) = ":" Then
                    x = i
                End If
 
            Next
 
            Remitente = ContenidoMensaje.Substring(0, x - 1)
            Mensaje = ContenidoMensaje.Substring(x)
 
            txtConversacion.Text += vbCrLf + vbCrLf + Remitente + ":" + vbCrLf + Mensaje
            txtConversacion.ScrollToCaret()
 
        Loop
 
    End Sub
 
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

ENVIAR MENSAJES MEDIANTE SOCKET

Publicado por jorge (9 intervenciones) el 26/01/2014 18:06:45
Tu respuesta es excelente, este es un ejemplo sencillo de realizar, te felicito.

Solo tengo un pero igual que el amigo que formulo la pregunta estoy ocupando saber como enviar archivos, si alguien puede ayudarme aportando su conocimiento le estaré muy agradecido.

Actualmente estoy programando con vb.net 2012
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar