Spanish Conexiones por Socket

pablovidal

Member
Licensed User
Longtime User
Hola,
B4A, es una extraordinaria herramienta de trabajo, pero le faltan ejemplos, Esto a debido a que no se como implementar la conexiones por sockets he visto los ejemplos y nada. Basicamente lo que necesito es un ejemplo funcional para enviar y recibir desde un dispositivo con android a un servidor socket que actualmente tengo funcionando con otras herramientas. Gracias
 

pcmas

Member
Licensed User
Longtime User
Debes usar php o asp para recibir la información de android y vb6 conectarlo a la db que uses mysql o sqlserver, suponiendo que la cadena la guardas en una db.
Hola mira no hace mucho estoy en el foro de basic4android y la verdad veo que mucha gente opina sin saber, eso es feo para quienes estan empezando o no estan bien metidos ya que lo unico que generan es confusion, la verdad si se puede hacer lo que queres y el metodo a utilizar es via socket y es muy simple, recuerda que la unica limitacion a la hora de programar es la cabeza del programador!.
yo conecte un server echo en visual basic 6 con el componente Microsoft Winsock y un cliente echo en basic4android, se puede enviar y recibir string y la conexion es via wifi. ahora el codigo.
B4X:
Sub Process_Globals 

Dim AStreams As AsyncStreams 
Dim Server As ServerSocket 
Dim Socket1 As Socket
'Declaramos las variables para ip y puerto Correspondiente
Dim port As String
Dim ServerIp As String
End Sub

Sub Globals 
Dim Button1 As Button
Dim Button2 As Button
Dim txtTexto As EditText
Dim EditText1 As EditText
EditText1.Initialize ("EditText1")

End Sub

Sub Activity_Create(FirstTime As Boolean) 
Activity.LoadLayout("1")
'aqui tu puerto
port = 5007
'aqui tu ip
ServerIp="192.168.1.121"
End Sub



Sub connet
Try 
Socket1.Initialize("Socket1")
Socket1.Connect(ServerIp ,port, 20000)
Catch 
ToastMessageShow( "No conectó!", True) 
End Try 
End Sub


Sub Socket1_Connected (Connected As Boolean) 
If Connected = True Then 
ToastMessageShow( "Conectado!", True) 
AStreams.Initialize(Socket1.InputStream,Socket1.OutputStream,"Astreams") 
End If
End Sub

Sub send_data(data As String)
If AStreams.IsInitialized = True Then 
Dim buffer() As Byte 
data=data
buffer = data.GetBytes("UTF8") 
AStreams.Write(buffer) 
End If
End Sub

Sub AStreams_NewData (Buffer() As Byte)
Dim msg As String 
msg = BytesToString(Buffer, 0, Buffer.Length, "UTF8") 
ToastMessageShow( msg, True)
End Sub

Sub AStreams_Error 
ToastMessageShow( LastException.Message, True)
End Sub

Sub Button1_Click
connet
End Sub
Sub Button2_Click
'declaro la cadena a enviar
Dim cadena As String 
'y le asigno su valor en este caso un edittext
cadena = EditText1.text
'envio la cadena
send_data(cadena)
End Sub

Sub EditText1_TextChanged (Old As String, New As String)
'esto sirve para enviar en tiempo real los cararcteres al escribirlos en el editetext
   Dim pline As String
    pline = EditText1.Text
If pline.Length > 40 Then
    EditText1.Text = pline.SubString2(0,39)
    EditText1.SelectionStart = 39
    ToastMessageShow("40 character limit",False)
End If
   send_data(pline)
End Sub

Librerias a utilizar:
Core
Network
Random Acces file

de mas esta decir que en ip y puerto va da de tu server creado con vb6, si necesitas mas ayuda con gusto te la brindo solo escribime saludos!
 

jota

Active Member
Licensed User
Longtime User
Hola pcmas, me gustaria saber porque haces referencia a una contestación mia de otro post que no tiene que ver con este.

Por otro lado la intención de todos los que contestamos en este foro es ayudar, y porsupuesto me reafirmo que para conectar con una db remota tanto con b4a como con java en android es via webservice.
 
Last edited:

pcmas

Member
Licensed User
Longtime User
master veo que no leiste el otro post donde te comente porque hice sin querer referencia a una respuesta en otro post, e hice un pedido de disculpas pero veo que no reconocen a la gente que se da cuenta cuando se equivoca...:BangHead:
 

jota

Active Member
Licensed User
Longtime User
mira la fecha y la hora de los post y saca tus conclusiones, veo que te cuesta poco judgar a los demas ...
 

hugo ivan

New Member
Hola mira no hace mucho estoy en el foro de basic4android y la verdad veo que mucha gente opina sin saber, eso es feo para quienes estan empezando o no estan bien metidos ya que lo unico que generan es confusion, la verdad si se puede hacer lo que queres y el metodo a utilizar es via socket y es muy simple, recuerda que la unica limitacion a la hora de programar es la cabeza del programador!.
yo conecte un server echo en visual basic 6 con el componente Microsoft Winsock y un cliente echo en basic4android, se puede enviar y recibir string y la conexion es via wifi. ahora el codigo.
B4X:
Sub Process_Globals

Dim AStreams As AsyncStreams
Dim Server As ServerSocket
Dim Socket1 As Socket
'Declaramos las variables para ip y puerto Correspondiente
Dim port As String
Dim ServerIp As String
End Sub

Sub Globals
Dim Button1 As Button
Dim Button2 As Button
Dim txtTexto As EditText
Dim EditText1 As EditText
EditText1.Initialize ("EditText1")

End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("1")
'aqui tu puerto
port = 5007
'aqui tu ip
ServerIp="192.168.1.121"
End Sub



Sub connet
Try
Socket1.Initialize("Socket1")
Socket1.Connect(ServerIp ,port, 20000)
Catch
ToastMessageShow( "No conectó!", True)
End Try
End Sub


Sub Socket1_Connected (Connected As Boolean)
If Connected = True Then
ToastMessageShow( "Conectado!", True)
AStreams.Initialize(Socket1.InputStream,Socket1.OutputStream,"Astreams")
End If
End Sub

Sub send_data(data As String)
If AStreams.IsInitialized = True Then
Dim buffer() As Byte
data=data
buffer = data.GetBytes("UTF8")
AStreams.Write(buffer)
End If
End Sub

Sub AStreams_NewData (Buffer() As Byte)
Dim msg As String
msg = BytesToString(Buffer, 0, Buffer.Length, "UTF8")
ToastMessageShow( msg, True)
End Sub

Sub AStreams_Error
ToastMessageShow( LastException.Message, True)
End Sub

Sub Button1_Click
connet
End Sub
Sub Button2_Click
'declaro la cadena a enviar
Dim cadena As String
'y le asigno su valor en este caso un edittext
cadena = EditText1.text
'envio la cadena
send_data(cadena)
End Sub

Sub EditText1_TextChanged (Old As String, New As String)
'esto sirve para enviar en tiempo real los cararcteres al escribirlos en el editetext
   Dim pline As String
    pline = EditText1.Text
If pline.Length > 40 Then
    EditText1.Text = pline.SubString2(0,39)
    EditText1.SelectionStart = 39
    ToastMessageShow("40 character limit",False)
End If
   send_data(pline)
End Sub

Librerias a utilizar:
Core
Network
Random Acces file

de mas esta decir que en ip y puerto va da de tu server creado con vb6, si necesitas mas ayuda con gusto te la brindo solo escribime saludos!
 
Top