[ k4rl0 @ 13.11.2007. 21:35 ] @
Pozdrav grupi! Poceo sam malo sa network programiranjem i sve je ok,kristanlo mi je jasno kako radi ovaj primjer,naime samo na localhostu(127.0.0.1). Mene sad zanima kak da npr. klijenta dam prijatelju i da on pokrene klijenta i spoji se na server koj sam ja kod sebe pokrenuo. Jasno mi je da nemam staticnu adresu pa cim resetiram ruter dolazi do promjene no nije u tome stvar. Pogledam si trenutni IP na internetu(IP od rutera) i to je 78.1.xxx.xxx. Stavim da taj IP bude IP na koji se klijent spaja. E sad..IP od servera stavim da bude opet 127.0.0.1,dakle server napravim na local host adresi a klijent se spaja na 78.1.xxx.xxx,tj. moju internet adresu. Meni to naime ne radi,ne kuzim zasto,imam ruter ali sam stavio da port koj koristim za spajanje(1008) forwardam na svoj komp i opet ne radi. Jesam mozda krivo Ip adrese namjestio ili..? Hvala na odgovorima!! Evo koda: KLIJENT Code: using System; using System.Net.Sockets; using System.Net; public class Client { static public void Main(string[] Args) { TcpClient socket; try { socket = new TcpClient("78.1.xxx.xxx", 1008); } catch { Console.WriteLine( "Nisam se uspio spojiti na server!"); Console.ReadKey(); return; } NetworkStream networkStream = socketForServer.GetStream(); System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream); System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream); try { string outputString; { outputString = streamReader.ReadLine(); Console.WriteLine(outputString); streamWriter.WriteLine("Ovu poruku je klijent poslo!"); Console.WriteLine("Poruka poslana serveru."); streamWriter.Flush(); } } catch { Console.WriteLine("Exception pri citanju sa servera!"); } networkStream.Close(); Console.ReadKey(); } } SERVER Code: using System; using System.Net; using System.Net.Sockets; public class Server { public static void Main() { IPAddress ip = IPAddress.Parse("127.0.0.1"); TcpListener tcpListener = new TcpListener(ip,1008); tcpListener.Start(); Socket socket = tcpListener.AcceptSocket(); if (socket.Connected) { Console.WriteLine("Klijent se spojio!"); NetworkStream nStream = new NetworkStream(socketForClient); System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(nStream); System.IO.StreamReader streamReader = new System.IO.StreamReader(nStream); string theString = "Ovo je server poslao klijentu."; streamWriter.WriteLine(theString); Console.WriteLine(theString); streamWriter.Flush(); theString = streamReader.ReadLine(); Console.WriteLine(theString); streamReader.Close(); networkStream.Close(); streamWriter.Close(); } socketForClient.Close(); Console.WriteLine("Izlaz..."); Console.ReadKey(); } } |