Fecha y hora actual: Miércoles 19 Jun 2019 22:03
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Ayuda con sockets y conexion TCP/IP

Responder al Tema

Índice del Foro > Visual Basic .NET > Ayuda con sockets y conexion TCP/IP

Autor Mensaje
jaime torres



Registrado: 06 Oct 2014
Mensajes: 1

Mensaje Publicado: Lunes 06 Oct 2014 22:48

Título del mensaje: Ayuda con sockets y conexion TCP/IP

Responder citando

Hola a todos de nuevo estoy por aqui con un problema
estoy tratando de realizar una conexion entre algunos equipos por medio de un socket

pero cuando envio el equipo se cicla ese es mi primer error
el segundo es que cuando cierro el formulario que recibe y lo abro de nuevo este se pone muy lento

este es el codigo para enviar:

Código:
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Net.Sockets
Imports System.Net
Imports System.Diagnostics

Public Class Socket_IP
    Dim Conexion As New Conexion()
    Public Sub Send_Message()
        Dim dts As New DataSet
        Dim strHostName As String
        Dim strIPAddress As String
        'cone.Delete("delete from IPS")
        strHostName = System.Net.Dns.GetHostName()
        strIPAddress = System.Net.Dns.GetHostByName(strHostName).AddressList(0).ToString()
        Conexion.Seleccionar("SELECT * FROM IPS", dts)
        For Each row In dts.Tables(0).Rows
            If Not IsDBNull(row(0)) Then
                Dim ipaddres As String = row(0).ToString
                Socket_Send(ipaddres)
            End If
        Next
    End Sub
    Private Sub Socket_Send(ByVal IPaAddress As String)
        Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        Try
            Socket.Connect(IPaAddress, 8888)
        Catch ex As Exception
            'Lalalalala
        End Try
        Dim message As String = "Pedido"
        Dim buffer As Byte() = Encoding.ASCII.GetBytes(message)
        Try
            Socket.Send(buffer)
        Catch ex As Exception
            'lalalalala
        End Try
        Socket.Close()
    End Sub
End Class


Con este otro estoy recibiendo:

Código:
Imports System
Imports System.Net
Imports System.Text
Imports System.Threading
Imports System.Diagnostics
Imports System.Net.Sockets

Public Class Reu
    Dim h1, h2 As Thread, mensaje As String
    Dim CallLlenaGrid As New MethodInvoker(AddressOf Me.DataGridH2)
    Dim cone As New Conexion(), data, data2, data3 As New DataSet
    Dim dt1, dt2, dt3 As DataTable
    Dim con As Integer
    Dim number As String
    Dim fecha As Date = Today.Date
    Dim nombre As String
    Private Sub Form15_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ''cone.Seleccionar("SELECT * FROM Ordenes", data2)
        ''dt2 = data2.Tables(0)
        ''Conse.DataSource = dt2
        ''con = Conse.Item(0, 0).Value
        Declarar()
        h1.Start()
        h2.Start()
    End Sub
    Private Sub Declarar()
        h1 = New Thread(AddressOf Me.Start_H1)
        h2 = New Thread(AddressOf Me.Start_H2)
    End Sub
    Private Sub Start_H1()
        Escuchar()
        If mensaje <> "" Then
            'h2.Suspend()
            If Not h2.ThreadState = Threading.ThreadState.Running Then
                h2.Resume()
            End If
            ''MessageBox.Show(mensaje)
            mensaje = ""
            Start_H1()
        Else
            Start_H1()
        End If
    End Sub
    Private Sub Escuchar()
        Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        Try
            Socket.Bind(New IPEndPoint(IPAddress.Any, 8888))
            Socket.Listen(1)
            Dim Client As Socket
            Client = Socket.Accept
            Dim buffer() As Byte = New Byte(20) {}
            Dim length As Integer
            Client.Receive(buffer)
            length = buffer.Length
            If length > 0 Then
                mensaje = Encoding.ASCII.GetString(buffer, 0, length)
            End If
        Catch ex As SocketException
            'MessageBox.Show("Error de Lectura() en: " + ex.ToString)
        End Try
        Socket.Close()
    End Sub
    Private Sub Start_H2()
        Cargar_Grid()
        Start_H2()
    End Sub
    Private Sub Cargar_Grid()
        Dim dts As New DataSet
        cone.Seleccionar("SELECT * FROM ORDENES", dts)
        data2 = dts
        Me.BeginInvoke(CallLlenaGrid)
        h2.Suspend()
    End Sub
    Private Sub DataGridH2()
        Conse.DataSource = data2.Tables(0)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub


y asi es como mando llamar el metodo:

Código:
Dim socket_ip As New Socket_IP()
socket_ip.Send_Message()


el sistema comprende 2 secciones una de ellas el usuario consume un producto y crea una orden de trabajo que se almacena en una base de datos

La segunda seccion se encuentra en manofactura y tiene que recibir la orden en cuanto se genere y mostrar en pantalla el numero de orden para que se comienze a producir

lo que yo quiero hacer es que cuando se genere la orden se envie un mensaje a la seccion 2 basicamente se refresque el datagrid y muestre un msgbox

Espero me pudieran apoyar con estos problemas

nunca antes habia manejado sockets

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo


Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Miércoles 05 Nov 2014 18:01

Título del mensaje: Ayuda con sockets y conexion TCP/IP

Responder citando

Asi por encima... veo q estableces una nueva conexion cada vez que envias un dato... si usas TCP la conexion deberia de ser... cliente y servidor se ponen de acuerdo para conectar y desde alli hasta que el cliente o servidor decida lo contrario la conexion permace activa.

Lo otro que veo es que no controlas que "send" este enviando toda la información que quieres... el metodo "send" por si solo no envia todo... te devuleve la informaicon que ha podido enviar.. normalmente casara con lo que quieres enviar pero no siempre... entonces deberis de controlar lo que has podido enviar con lo que te falta por enviar...


++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>--.<--.>-----.--.+++++++.---------.-.>>++.<<-.+++++.-------.<-.>>++.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Lerakroxa



Registrado: 26 Feb 2016
Mensajes: 1

Mensaje Publicado: Sábado 27 Feb 2016 13:56

Título del mensaje: Ayuda con sockets y conexion T

Responder citando

Holass

te he puesto el que tenias antes
.. este que me has puesto aqui es un pelin grande.

Besitos

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Por favor ayuda!!!!!!

Enzo89 Temas generales 0 Jueves 23 May 2019 01:08 Ver último mensaje
El foro no contiene ningún mensaje nuevo

AYUDA CON BUCLES ABIERTOS Y CERRADOS PARA VISUA...

Fabricio Esteban P Visual Basic y VBA 0 Miércoles 08 May 2019 05:21 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda creando página web

lamek HTML y CSS 1 Lunes 14 Ene 2019 08:10 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,