Autor
|
Tema: duda control winsock (Leído 2,074 veces)
|
peib0l
Wiki
Desconectado
Mensajes: 3.493
freedom
|
buenas e echo un programa para transferir archivos ente pc´s pero el problema es que salta error y no se porque no se si sera cosa del router o del programa... alguna idea para solucionarlo
si quieren mas info solo pregunten les doy todo lo que quieran.. incluido el source..
Gracias & Salu2
|
|
|
En línea
|
|
|
|
rdzlcs
Desconectado
Mensajes: 784
El cerebro, la experiencia y una pizca de suerte.
|
Pues seria util saver la clase de error que tira, o si muertras el code mucho mejor...
SAludos
|
|
|
En línea
|
|
|
|
peib0l
Wiki
Desconectado
Mensajes: 3.493
freedom
|
o si muertras el code mucho mejor...
Option Explicit Private Declare Function GetFileTitle _ Lib "comdlg32.dll" _ Alias "GetFileTitleA" ( _ ByVal lpszFile As String, _ ByVal lpszTitle As String, _ ByVal cbBuf As Integer) As Integer Dim Flag As Boolean Dim lBytes As Long Dim lFileSize As Long Private Sub Form_Load() txtIP = "127.0.0.1" txtIP.Enabled = False txtPuerto = "3000" txtPuerto.Enabled = False txtArchivo.Enabled = False cmdBuscar.Enabled = False cmdEnviar.Enabled = False cmdCambiar.Enabled = False cmdConectar.Enabled = False cmdEscuchar.Enabled = False End Sub Private Sub cmdSalir_Click() End End Sub
Private Sub cmdCliente_Click() txtIP = "127.0.0.1" txtIP.Enabled = False txtPuerto = "3000" txtPuerto.Enabled = False txtArchivo = "" txtArchivo.Enabled = True cmdBuscar.Enabled = True cmdEnviar.Enabled = False cmdCambiar.Enabled = True cmdConectar.Enabled = True cmdEscuchar.Enabled = False Me.Caption = "Cliente" End Sub Private Sub cmdConectar_Click() On Error Resume Next Winsock1.Connect txtIP, txtPuerto cmdConectar.Enabled = False End Sub
Private Sub cmdEnviar_Click() Dim sFileName As String
If Trim(txtArchivo) = "" Then MsgBox "Debe elegir un archivo" Exit Sub End If If Dir(txtArchivo) <> "" Then sFileName = GetFileName(txtArchivo)
Winsock1.SendData "|Archivo|" & FileLen(txtArchivo) & "|" & sFileName Else MsgBox "El archivo no existe" End If End Sub Private Sub cmdBuscar_Click() With CommonDialog1 .FileName = vbNullString .ShowOpen If .FileName <> "" Then txtArchivo = .FileName cmdEnviar.Enabled = True End If End With End Sub Private Sub cmdCambiar_click() txtIP.Enabled = True txtPuerto.Enabled = True End Sub
Private Sub Winsock1_Close() On Error Resume Next cmdConectar.Enabled = True cmdEnviar.Enabled = False Winsock1.Close MsgBox "La Conexion se ha cerradado", vbInformation txtIP.Enabled = False txtPuerto.Enabled = False txtArchivo.Enabled = False cmdBuscar.Enabled = False cmdEnviar.Enabled = False cmdCambiar.Enabled = False cmdConectar.Enabled = False cmdEscuchar.Enabled = False End Sub
Private Sub Winsock1_Connect() cmdConectar.Enabled = False cmdEnviar.Enabled = True MsgBox "Conectado correctamente al servidor" End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim sData As String Winsock1.GetData sData, vbString If sData = "|Ok|" Then Call Enviar_Archivo End Sub Private Sub Winsock1_Error( _ ByVal Number As Integer, _ Description As String, _ ByVal Scode As Long, _ ByVal Source As String, _ ByVal HelpFile As String, _ ByVal HelpContext As Long, _ CancelDisplay As Boolean) On Error Resume Next cmdConectar.Enabled = True cmdEnviar.Enabled = False Winsock1.Close MsgBox "Error al cerrar la conexion" End Sub
Private Sub Enviar_Archivo() Dim Size As Long Dim arrData() As Byte Open txtArchivo For Binary Access Read As #1 Size = LOF(1) ReDim arrData(Size - 1) Get #1, , arrData Close Winsock1.SendData arrData End Sub
Private Function GetFileName(sPath As String) Dim sBuffer As String * 255 Dim sTemp As String GetFileTitle sPath, sBuffer, Len(sBuffer) GetFileName = Left(sBuffer, InStr(1, sBuffer, Chr(0)) - 1) End Function
Private Sub cmdServidor_Click() txtIP = "" txtIP.Enabled = False txtPuerto = "3000" txtPuerto.Enabled = False txtArchivo = "" txtArchivo.Enabled = False cmdBuscar.Enabled = False cmdEnviar.Enabled = False cmdCambiar.Enabled = True cmdConectar.Enabled = False cmdEscuchar.Enabled = True Me.Caption = "servidor" End Sub
Private Sub cmdEscuchar_Click() On Error GoTo error_handler With Winsock2
.LocalPort = txtPuerto
.Listen End With cmdEscuchar.Enabled = False Exit Sub error_handler: MsgBox Err.Description End Sub
Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long) On Error GoTo error_handler
cmdEscuchar.Enabled = False With Winsock2 .Close .Accept requestID End With
MsgBox "Conexion recibida" Exit Sub error_handler: MsgBox Err.Description, vbCritical, "Winsock2_ConnectionRequest" End Sub Private Sub Winsock2_Close() On Error GoTo error_handler cmdEscuchar.Enabled = True Winsock2.Close
MsgBox "Conexion cerrada" Exit Sub error_handler: MsgBox Err.Description, vbCritical, "Winsock_Close" End Sub
Private Sub Winsock2_Connect() MsgBox "Conexion aceptada", vbInformation End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim arrData() As Byte Dim vData As Variant
If Flag = False Then Winsock2.GetData vData, vbString If Mid(vData, 1, 9) = "|Archivo|" Then Flag = True lBytes = 0 vData = Split(vData, "|") lFileSize = vData(2)
Winsock2.SendData "|Ok|"
Open App.Path & "\" & vData(3) For Binary Access Write As #1 End If End If If Flag Then
lBytes = lBytes + bytesTotal
Winsock2.GetData arrData
Put #1, , arrData
If lBytes >= lFileSize Then Close #1 Flag = False lBytes = 0 MsgBox "El archivo se ha recibido por completo" End If End If
End Sub
Private Sub Winsock2_Error( _ ByVal Number As Integer, _ Description As String, _ ByVal Scode As Long, _ ByVal Source As String, _ ByVal HelpFile As String, _ ByVal HelpContext As Long, CancelDisplay As Boolean)
On Error Resume Next
cmdEscuchar.Enabled = True Winsock2.Close
MsgBox "La Conexion se ha cerrado", vbInformation End Sub
|
|
|
En línea
|
|
|
|
ssccaann43 ©
Desconectado
Mensajes: 792
¬¬
|
Podrías especificar en que linea te arroja el error?
|
|
|
En línea
|
- Miguel Núñez Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio... "I like ^TiFa^"
|
|
|
aaronduran2
|
Lo probé junto a él y no es que de error en el código, es que salta una ventana diciendo que no se puede conectar. Probamos con un puerto y conectó, pero desconectó al instante.
|
|
|
En línea
|
|
|
|
peib0l
Wiki
Desconectado
Mensajes: 3.493
freedom
|
exacto lo qeu dice ADN y no sabemos por qeu pensamos que es cosa del router o firewall del mismo pero nosabemos... alguien que arroje algo de inspiracion???
Salu2
|
|
|
En línea
|
|
|
|
ssccaann43 ©
Desconectado
Mensajes: 792
¬¬
|
Lo probé junto a él y no es que de error en el código, es que salta una ventana diciendo que no se puede conectar. Probamos con un puerto y conectó, pero desconectó al instante.
Al momento de desconectar arroja un mensaje? Pues no creo que sea por el code.
|
|
|
En línea
|
- Miguel Núñez Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio... "I like ^TiFa^"
|
|
|
aaronduran2
|
Probamos con diferentes puertos y no iba ninguno, ni siquiera mostraba nada. Luego probamos con el 21, y después de conectar (aparecía un mensaje confirmándolo) se desconectaba repentinamente (avisando con otro mensaje).
|
|
|
En línea
|
|
|
|
peib0l
Wiki
Desconectado
Mensajes: 3.493
freedom
|
|
|
|
En línea
|
|
|
|
|
|