Salve a tutti ho il seguente problema ho creato un software che utilizza System.Net.Sockets
e System.Text.UTF8Encoding ho programmato tutto e quando sono andato a testarlo ho notato che ci sono problemi enormi in quantop client server nn parlano tra di loro le mie prove sono state le seguenti :
1) windows xp (Server) - windowsxp ( client ) --------> tutto funziona a dovere client e server parlano senza problemi
2) windows xp ( server ) - windows 7 (client ) --------> tutto funziona bene come sopra
3) windows 7( server ) -windows xp (client ) ----------> niente da fare nn ne vogliono sapere di parlare
4) windows 7 (server)- windows 7 (client localhost )-------> funzina tutto a dovere
quindi la mia domanda è la seguente possibile che sia un errore di programmazione oppure di qualche protocollo di protezione a me sconosciuto, premetto che il firewall di 7 ha l'eccezione e lavoravo nella stessa lan.
vi passo i dati esempio di un serverr ascolta e un client connetti
Server Ascolta
codice:
Listener = New TcpListener(1840)
Listener.Start()
tmrConnections.Start()
btnListen.Enabled = False
btnConnect.Enabled = False
txtLog.AppendText("Server - in ascolto..." & Environment.NewLine)
codice:
Private Sub tmrConnections_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrConnections.Tick
'Se ci sono connessioni...
If Listener.Pending() Then
'Ferma un attimo il timer
tmrConnections.Stop()
'Chiede all'utente se confermare la connessione
If MessageBox.Show("Rilevato un tentativo di connessione. Accettare?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
'Ottiene l'oggetto TcpClient collegato al client
Client = Listener.AcceptTcpClient()
'Ferma il listener
Listener.Stop()
'Ottiene il network stream
NetStream = Client.GetStream()
'E attiva/disattiva i controlli per quando si è connessi
EnableControls(True)
Else
Listener.Stop()
Listener.Start()
tmrConnections.Start()
End If
End If
End Sub
Client connetti
codice:
Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
Dim Porta As Integer
'Prima esegue un controllo sull'indirizzo IP per
'controllare che sia valido
'Quindi inizializza un client e tenta la connessione
'al dato IP sulla porta 5000
For Porta = "1830" To "1840" Step "1"
Client = New TcpClient()
txtLog.AppendText("Client - tentativo di connessione..." & vbCrLf)
Try
Application.DoEvents()
Client.Connect(txtIP.Text, Porta)
Catch Ex As Exception
End Try
'Se la connessione ha avuto successo, ottiene il network
'stream e agisce sui controlli come nel codice precedente
If Client.Connected Then
txtLog.AppendText("Tentativo di connessione riuscito!" & vbCrLf)
NetStream = Client.GetStream()
EnableControls(True)
Exit Sub
Else
txtLog.AppendText("Tentativo di connessione fallito..." & vbCrLf)
End If
Next
End Sub
PS il software è stato scritto in framework 3.5 ( sono sicuro al 99%) e con visual studio 2010