COMUNICARE VIA TCP/IP CON UN'ALTRA MACCHINA

domenica 13 luglio 2008 - 15.39

sergio1981 Profilo | Newbie

Ciao a tutti,
come posso comunicare via tcp/ip con un'altra macchina e anche viceversa, cioè attendendo i dati
che arrivano?

ciao e grazie a tutti

LuxSkyWalker Profilo | Junior Member

Non hai specificato ambito, ambiente di sviluppo, linguaggio...ma a prima vista direi...SOCKET TCP/IP!!!
LuxSkyWalker
Junior Developer .NET

sergio1981 Profilo | Newbie

perdonami hai ragione... io uso visual studio 2008 con vb.net...

LuxSkyWalker Profilo | Junior Member

Io in passato ho lavorato ad una applicazione che usava i socket tcp/ip per fare comunicare un pc con un palmare...ma usavo Visual Studio 2005 con C#...non ho mai usato nè vb net nè vs2008, ma immagino che l'approccio sia lo stesso!!!
LuxSkyWalker
Junior Developer .NET

sergio1981 Profilo | Newbie

quindi mi dici di usare le socket tctp/ip?
hai qualche esempio di codice? anche in c# mi va bene...

LuxSkyWalker Profilo | Junior Member

Ora come ora non ho nulla...devo andare a rispolverare il vecchio codice che ho da qualche parte sul pc di casa...se hai tempo di aspettare qualche giorno (sono in trasferta, torno a casa giovedi sera) allora te lo posto, altrimenti è comunque tutto sul framework...System.Net.Socket è il namespace...
LuxSkyWalker
Junior Developer .NET

sergio1981 Profilo | Newbie

grazie mille... tranquillo ho tempo... quando hai voglia postalo ...grazie!

denis.basei Profilo | Senior Member

Ciao Sergio1981

ho fatto una cosa del genere qualche mese fa, ti sintetizzo come ho proceduto: nel mio caso c'è una applicazione che rimane in ascolto ed n altre appilcazioni che interrogano la prima.

APPLICAZIONE IN ASCOLTO:
imports System.Net.Sockets

Dim localhostAddress as IPAddress = IPAddress.Loopback
dim localAddr as IPAddress = IPAddress.parse("192.168.1.13")
dim tcpList as new TcpListener(localAddr, 2048)

' Per leggere la richiesta di un client
do
' Leggo la richiesta di un client
dim tmpCli as TcpClient = tcpList.AcceptTcpClient

' ... per uscire dal ciclo se il client invia una certa stringa esco...
loop

APPLICAZIONE CLIENT:
imports System.Net.Sockets

Dim tcpClient as new TcpClient("192.168.1.13", 2048)
dim ns as NetworkStream = tcpClient.GetStream
Dim sw as new StreamWriter(ns)
sw.WriteLine("Ciao")
sw.Flush()




Denis B. - www.baseiengineering.com

LuxSkyWalker Profilo | Junior Member

A vedere il codice che ha postato Sergio, mi sembra tutto ok...io l'avevo fatto in C#, lui ce l'ha già in Vb.NET quindi direi che è addirittura meglio il suo codice...io avevo proceduto con lo stesso approccio, a differenza che entrambe le mie applicazioni (server e client) potevano inoltrare e ricevere messaggi!

Ottimo Sergio!
LuxSkyWalker
Junior Developer .NET

sergio1981 Profilo | Newbie

grazie a tutti per l'aiuto ragazzi... siete stati gentilissimi

LuxSkyWalker Profilo | Junior Member

Ho poca esperienza...ma quel poco che ho la condivido volentieri con gli altri!!! (che è poi lo scopo di un forum!)...

Buona giornata...


LuxSkyWalker
Junior Developer .NET

sergio1981 Profilo | Newbie

Eh...ho poca esperienza anche io con .Net per questo chiedo a chi ne sa piu' di me
Grazie ancora

denis.basei Profilo | Senior Member

Concordo che il forum è un mezzo notevole per imparare.
Sergio se l'esempio in vb net ti è stato d'aiuto accetta la mia risposta.


Grazie
Denis B. - www.baseiengineering.com

Lanello Profilo | Senior Member

piccolo consiglio,

se la comunicazione tra le macchine non è l'unica cosa che devi fare nella tua application, ti consiglio caldamente di sviluppare l'interfaccia via socket in modo che "giri" in un thread separato da quello principale.

o direttamente creando un thread o utilizzando il componente backgroundworker
-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

denis.basei Profilo | Senior Member

Condivido, per esperienza fatta, l'osservazione di lanello.

Buon fine settimana a tutti!
Denis B. - www.baseiengineering.com

LuxSkyWalker Profilo | Junior Member

Quoto in tutto e per tutto Ianello e Denis.
LuxSkyWalker
Junior Developer .NET
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5