Oppure

Loading
16/02/11 21:18
LoL
Carissimi programmatori vi vorrei sottoporre un piccolo problema, vorrei sapere come fare a mandare un file .txt diciamo in modo "automatizzato". Mi spiego meglio. Sto sperimentando l'oggetto winsock e ho creato una piccola applicazione client/server e mi sono posto il problema se io dal mio client do il comando di creare un file .txt nel mio computer o di chi possiede il server come posso poi dal client o dal server riprenderlo? esempio (io dal client creo un file vuoto e a chi possiede il server gli dico di scriverci qualcosa in questo file, poi io voglio leggere ciò che quest'ultimo ha scritto e quindi devo riavere il file) cosa mi consigliate di fare?! Spero di essere stato chiaro e ringrazio anticipatamente per l'attenzione ^^
Ultima modifica effettuata da LoL 16/02/11 21:19
aaa
17/02/11 9:06
lorenzo
si usa il procollo ftp. TU crei il file in una directory leggibile via ftp dall'altro che richiede il file, lo modifica e lo reinvia (sovracrivendo il precedente oppure inserendo quello modificato in una seconda directory)
aaa
17/02/11 14:50
LoL
Grazie per la risposta tempestiva, mi scriveresti in vb6 questo procedimento?!
aaa
17/02/11 15:04
lorenzo
non sono un cameriere che prende ordinazioni.....documentati sul protocollo ftp oppure cerca su google, ci sono tanti ocx già pronti all'uso.

Non è una cosa da due linee di codice comunque.
aaa
17/02/11 19:50
LoL
Io non ti ho ordinato niente ho solo fatto una domanda o richiesta nessun ordine :_doubt: cmq ti ringrazio lo stesso per la risposta ^^
aaa
18/02/11 22:01
GrG
Postato originariamente da LoL:

Io non ti ho ordinato niente ho solo fatto una domanda o richiesta nessun ordine :_doubt: cmq ti ringrazio lo stesso per la risposta ^^



nei forum generalmente non si fa richiesta di un codice già pronto, ma dovresti provare a documentarti e scrivere te del codice, poi se hai qualche problema ce lo scrivi qui e noi ti proveremo ad aiutare
aaa
19/02/11 17:41
LoL
Ok tutto chiaro ^^. Allora io ho cambiato metodo e per inviare il file ho usato il winsock e non le mail. Io vorrei che il mio programma funzionasse senza che io inserisca niente, cioè senza che io inserisca il percorso del file (che sarà costante) e senza dover cliccare su invia o su connetti (anche l'ip sarà costante) quindi all'apertura della form il programma dovrebbe fare tutto solo. Vi posto il mio codice(del client) spero che mi possiate aiutare.
________________________________________________________________________________

Option Explicit
Private Declare Function getsockopt Lib "wsock32.dll" (ByVal s As Long, ByVal Level As Long, ByVal optname As Long, optval As Any, optlen As Long) As Long
Private Const SO_SNDBUF = &H1001
Private Const SOL_SOCKET = &HFFFF&

Private FILEHANDLE As Integer
Private DIMENSIONEPACCHETTO As Long

Private Sub Connetti_Click()
If Socket.State <> sckClosed Then Socket.Close
Socket.LocalPort = 0
Socket.Connect IndirizzoIP.Text, 1500
End Sub

Private Sub Form_Unload(Cancel As Integer)
If SocketInvio.State <> sckClosed Then SocketInvio.Close
If Socket.State <> sckClosed Then Socket.Close
Socket.LocalPort = 0
End Sub

Private Sub Invia_Click()
Dim POSIZIONE As Integer
If Socket.State <> sckConnected Then Exit Sub
If Dir(NomeFile.Text) = "" Then
MsgBox "Il file non esiste!", vbCritical + vbOKOnly
Else
POSIZIONE = 0
While InStr(POSIZIONE + 1, NomeFile.Text, "\";) > 0
POSIZIONE = InStr(POSIZIONE + 1, NomeFile.Text, "\";)
Wend
Socket.SendData "/FILE " & Mid(NomeFile.Text, POSIZIONE + 1) & " " & FileLen(NomeFile.Text)
End If
End Sub

Private Sub SocketInvio_Connect()
Dim DATI(511) As Byte
FILEHANDLE = FreeFile
Open NomeFile.Text For Binary As FILEHANDLE
Get FILEHANDLE, , DATI
SocketInvio.SendData DATI
Call getsockopt(SocketInvio.SocketHandle, SOL_SOCKET, SO_SNDBUF, DIMENSIONEPACCHETTO, Len(DIMENSIONEPACCHETTO))
If DIMENSIONEPACCHETTO = 0 Then DIMENSIONEPACCHETTO = 8192
End Sub

Private Sub SocketInvio_Close()
Close FILEHANDLE
If SocketInvio.State <> sckClosed Then SocketInvio.Close
End Sub

Private Sub Socket_DataArrival(ByVal bytesTotal As Long)
Dim DATI() As Byte
Call Socket.GetData(DATI)
DATI = StrConv(DATI, vbUnicode)
If Left(DATI, 11) = " +OK: PORTA" Then
If SocketInvio.State <> sckClosed Then SocketInvio.Close
SocketInvio.LocalPort = 0
SocketInvio.Connect Socket.RemoteHostIP, Mid(DATI, 12)
End If
If (Left(DATI, 10) = " +OK: RECV";) Then
If FILEHANDLE <> 0 Then
DATI = Space(DIMENSIONEPACCHETTO / 2)
Get FILEHANDLE, , DATI
SocketInvio.SendData DATI
End If
End If
If (Left(DATI, 10) = " +OK: FINE";) Then
Close FILEHANDLE
SocketInvio.Close
MsgBox "Trasferimento completato!", vbInformation + vbOKOnly
End If
End Sub
Ultima modifica effettuata da LoL 19/02/11 17:43
aaa
20/02/11 17:16
GrG
Dunque tu vorresti inviare del testo dal server verso il client il quale dovrebbe poi salvarlo su un txt?

Se si dimmi dove hai problemi, se nell'invio del testo, o nel salvataggio del testo nel file txt
aaa