Utilizzo del TcpListener

giovedì 19 novembre 2009 - 12.26

diegoooo82 Profilo | Junior Member

Ciao a tutti..
devo sviluppare un'applicazione che legga i dati da un centralino telefonico con interfaccia LAN
visto che non ho mai fatto una cosa del genere ho preso il codice che ho trovato sul sito msdn l'ho messo nella mia applicazione e la prima cosa che mi ha dato è questa...
quancono ha idea di cosa significhi non riesco a venirne fuori...

SocketException: System.Net.Sockets.SocketException: Di norma è consentito un solo utilizzo di ogni indirizzo di socket (protocollo/indirizzo di rete/porta)
in System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
in System.Net.Sockets.Socket.Bind(EndPoint localEP)
in System.Net.Sockets.TcpListener.Start(Int32 backlog)
in System.Net.Sockets.TcpListener.Start()

la funzione che ho usato è questa
Dim server As TcpListener server = Nothing Try ' Set the TcpListener on port 13000. Dim port As Int32 = 2561 Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1") server = New TcpListener(localAddr, port) ' Start listening for client requests. server.Start() ' Buffer for reading data Dim bytes(1024) As Byte Dim data As String = Nothing ' Enter the listening loop. While True Console.Write("Waiting for a connection... ") ' Perform a blocking call to accept requests. ' You could also user server.AcceptSocket() here. Dim client As TcpClient = server.AcceptTcpClient() Console.WriteLine("Connected!") data = Nothing ' Get a stream object for reading and writing Dim stream As NetworkStream = client.GetStream() Dim i As Int32 ' Loop to receive all the data sent by the client. i = stream.Read(bytes, 0, bytes.Length) While (i <> 0) ' Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i) Console.WriteLine("Received: {0}", data) ' Process the data sent by the client. data = data.ToUpper() Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data) ' Send back a response. stream.Write(msg, 0, msg.Length) Console.WriteLine("Sent: {0}", data) i = stream.Read(bytes, 0, bytes.Length) End While ' Shutdown and end connection client.Close() End While Catch ex As SocketException Console.WriteLine("SocketException: {0}", ex) Finally server.Stop() End Try Console.WriteLine(ControlChars.Cr + "Hit enter to continue....") Console.Read() End Sub

Grazie
Buon Lavoro

luigidibiasi Profilo | Guru

Probabilente o la porta è occupata oppure apri più connessioni in listening sulla stessa porta...

Cosa devi far fare al programma? (anche perchè quel codice ti fà accettare connessioni ....)


Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5