Code:
public void start_client()
{
//logBox.Text+="Konektujem se na server\r\n";
//Loop Flag
bool continueLoop =true;
poruka = "";
while(continueLoop)
{
//Salje DataGram
System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
string sendString= adrKlijent.ToString() + "@"+portKlijent.ToString()+"@Zahtev za trenutnim datumom i vremenom";
byte[] sendData =encode.GetBytes(sendString);
poruka +="Zahtev za trenutnim datumom i vremenom...\r\n";
//Salje Server-u
client.Send(sendData,sendData.Length,adrServer.ToString(),portServer);
//Prima DataGram od Server-a
BinaryFormatter formatter1 = new BinaryFormatter();
Stream s1 = new MemoryStream();
byte[] recData = client.Receive(ref receivePoint);
s1.Write(recData,0,recData.Length-1);
for (int i = 0; i < recData.Length; i++){
System.Console.Out.WriteLine(recData[i]);
}
s1.Position = 0;
object obj = formatter1.UnsafeDeserialize(s1,null);
TimeResponse datumIvreme = (TimeResponse)obj;
//Stream serializationStream = client.Receive(ref receivePoint).;
//poruka +="DateTime :"+encode.GetString(recData)+"\r\n";
poruka += "DateTime :"+datumIvreme.DateTimeToStr()+"\r\n";
//Zatvara se konekcija
client.Close();
if (konzola)
{
System.Console.Out.WriteLine(poruka);
}
else
{
myBox.Text += poruka;
}
//End Loop
continueLoop=false;
}
server
public void start_server()
{
logBox.Text+="Server pokrenut \r\n";
//Infinite loop
while(true)
{
//Prima DataGram
byte[] recData = server.Receive(ref receivePoint);
logBox.Text+="Paket primljen!!\r\n";
System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
//Deli
string[] temp = encode.GetString(recData).Split(new Char[] {'@'});
logBox.Text+="Od :"+temp[0];
logBox.Text+="\r\nPort :"+temp[1];
logBox.Text+="\r\nSadrzi :"+temp[2];
//Salje nazad DataGram
BinaryFormatter formatter = new BinaryFormatter();
Stream s = new MemoryStream();
TimeResponse dt = new TimeResponse(System.DateTime.Now);
formatter.Serialize(s,dt);
int br = Convert.ToInt32(s.Length);
s.Position = 0;
byte[] sendData= new byte[br];
System.Console.Out.WriteLine();
s.Read(sendData,0,br);
logBox.Text+="\r\nSaljem trenutni datum i vreme...\r\n";
//Koristi IP i Port poslat od korisnika da vrati DataGram
server.Send(sendData,sendData.Length,temp[0],Int32.Parse(temp[1]));
}
Time response
[Serializable]
public class TimeResponse
{
private DateTime datumIvreme;
public TimeResponse(DateTime dv)
{
datumIvreme = dv;
}
public string DateTimeToStr()
{
return datumIvreme.ToShortDateString() + " " + datumIvreme.ToShortTimeString();
}
}
public void start_client()
{
//logBox.Text+="Konektujem se na server\r\n";
//Loop Flag
bool continueLoop =true;
poruka = "";
while(continueLoop)
{
//Salje DataGram
System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
string sendString= adrKlijent.ToString() + "@"+portKlijent.ToString()+"@Zahtev za trenutnim datumom i vremenom";
byte[] sendData =encode.GetBytes(sendString);
poruka +="Zahtev za trenutnim datumom i vremenom...\r\n";
//Salje Server-u
client.Send(sendData,sendData.Length,adrServer.ToString(),portServer);
//Prima DataGram od Server-a
BinaryFormatter formatter1 = new BinaryFormatter();
Stream s1 = new MemoryStream();
byte[] recData = client.Receive(ref receivePoint);
s1.Write(recData,0,recData.Length-1);
for (int i = 0; i < recData.Length; i++){
System.Console.Out.WriteLine(recData[i]);
}
s1.Position = 0;
object obj = formatter1.UnsafeDeserialize(s1,null);
TimeResponse datumIvreme = (TimeResponse)obj;
//Stream serializationStream = client.Receive(ref receivePoint).;
//poruka +="DateTime :"+encode.GetString(recData)+"\r\n";
poruka += "DateTime :"+datumIvreme.DateTimeToStr()+"\r\n";
//Zatvara se konekcija
client.Close();
if (konzola)
{
System.Console.Out.WriteLine(poruka);
}
else
{
myBox.Text += poruka;
}
//End Loop
continueLoop=false;
}
server
public void start_server()
{
logBox.Text+="Server pokrenut \r\n";
//Infinite loop
while(true)
{
//Prima DataGram
byte[] recData = server.Receive(ref receivePoint);
logBox.Text+="Paket primljen!!\r\n";
System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
//Deli
string[] temp = encode.GetString(recData).Split(new Char[] {'@'});
logBox.Text+="Od :"+temp[0];
logBox.Text+="\r\nPort :"+temp[1];
logBox.Text+="\r\nSadrzi :"+temp[2];
//Salje nazad DataGram
BinaryFormatter formatter = new BinaryFormatter();
Stream s = new MemoryStream();
TimeResponse dt = new TimeResponse(System.DateTime.Now);
formatter.Serialize(s,dt);
int br = Convert.ToInt32(s.Length);
s.Position = 0;
byte[] sendData= new byte[br];
System.Console.Out.WriteLine();
s.Read(sendData,0,br);
logBox.Text+="\r\nSaljem trenutni datum i vreme...\r\n";
//Koristi IP i Port poslat od korisnika da vrati DataGram
server.Send(sendData,sendData.Length,temp[0],Int32.Parse(temp[1]));
}
Time response
[Serializable]
public class TimeResponse
{
private DateTime datumIvreme;
public TimeResponse(DateTime dv)
{
datumIvreme = dv;
}
public string DateTimeToStr()
{
return datumIvreme.ToShortDateString() + " " + datumIvreme.ToShortTimeString();
}
}