sirtorres01
Becerro
- Desde
- 15 Dic 2009
- Mensajes
- 42
- Tema Autor
- #1
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:
Con este otro estoy recibiendo:
y asi es como mando llamar el metodo:
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
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