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();
}
}
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();
}
}
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();
}
}