Spero che la sezione sia giusta,
sono un informatico ma mi occupo poco di programmazione, scusate gli eventulai strafalcioni o inesattezze.
Nel fare i primi passi con VB10 Express ho sfruttato l'esigenza lavorativa di dover creare due applicazioni che scambiassero dati e stringhe.
Una con funzioni simil "server" e l'altra "client", simile a una chat che è una delle cose più semplici da costruire ho visto.
Il problema è che compilata la Client se provo a eseguire il file Client della cartella "Release" su un altro pc (Win 7 32bit, .NET 3.5 e 4.0) immediatamente va in errore e smette di funzionare col relativo messaggio "L'applicazione ha smesso di funzionare".
Posto il codice della Client :
codice:
Imports System.NetImports System.Net.Sockets
Imports System.Text.UTF7Encoding
Public Class Client
Dim open As TcpListener
Dim server As TcpListener
Dim client, host As TcpClient
Dim dati, hdat As NetworkStream
Dim ip As String = Nothing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If CheckBox1.Checked = True Then
Dim ipcol As New Collection
Dim ipe As Net.IPHostEntry = System.Net.Dns.GetHostEntry(TextBox1.Text)
Dim ipa() As Net.IPAddress = ipe.AddressList
For i = 0 To ipa.GetUpperBound(0)
ipcol.Add(ipa(i).ToString)
Next
ip = ipcol.Item(1)
Else
ip = TextBox1.Text
End If
client = New TcpClient
client.Connect(ip, 2000)
If client.Connected = True Then
dati = client.GetStream
MsgBox("client connesso", MsgBoxStyle.Information)
Timer1.Start()
Else
MsgBox("error", MsgBoxStyle.Critical)
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
If client.Available > 0 Then
Dim t(client.Available - 1) As Byte
dati.Read(t, 0, t.Length)
Dim testo As String = UTF7.GetString(t)
RichTextBox1.Text += vbCrLf & "server : " & testo & vbCrLf
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim t() As Byte = UTF7.GetBytes(TextBox2.Text)
dati.Write(t, 0, t.Length)
RichTextBox1.Text += vbCrLf & "io :" & TextBox2.Text & vbCrLf
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim t() As Byte = UTF7.GetBytes("info")
dati.Write(t, 0, t.Length)
RichTextBox1.Text += vbCrLf
End Sub
Private Sub Client_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Ho anche impostato la compilazione a x86 come suggerito in altri post, ma non cambia nulla.
Qualcuno con queste informazioni riesce a capire ed aiutarmi?
grazie