Kart Geçiş Uygulaması
SERVER
using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Collections;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace deneme
{
public partial
class Form1 : System.Windows.Forms.Form
{
private
const int portno = 9990; //kullanıcı
port numarası
public
Thread kanal; //kanal tanımlandı
public int
t1, t2, sonuc;
public
string bakiye,ucret,kalanbakiye;
public
Form1()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
try
//sadece prestige prosedürü için kanal olusturuluyor
{
kanal = new Thread(new ThreadStart(prestige));
kanal.Start(); //kanal
aktifleştiriliyor
kanal.Priority = ThreadPriority.Normal; //öncelik sırası belirleniyor
this.Text = "Kanal Çalıştı";
}
catch (Exception e)
{
this.Text = "Kanal Çalışmadı";
kanal.Abort(); //Hata olursa
kanalı iptal et
}
}
[STAThread]
static void
Main()
{
Application.Run(new Form1());
}
public int
i = 1;
public void
prestige()
{
TcpListener tcplistener = new
TcpListener(System.Net.IPAddress.Any,portno); //kullanılacak olan port belirleniyor
try
{
while (true) //sonsuz döngü
oluşturuluyor
{
string[] parcalar;
tcplistener.Start();//port dinleniyor
Socket socket1 = tcplistener.AcceptSocket(); //socket1 isimli değişken porta bağlandı
label3.Text = i.ToString();//kaçıncı
bağlantı
Byte[] okunan = new Byte[1024];
int boyut = socket1.Receive(okunan,
okunan.Length, 0);//porta gelen veri
okunuyor
string dataokunan = System.Text.Encoding.UTF8.GetString(okunan);//string değişkene dönüştürülüyor
listBox2.Items.Add(socket1.RemoteEndPoint.ToString());
//string numara;
//numara =
IPAddress.Parse(((IPEndPoint)socket1.RemoteEndPoint).Address.ToString()).ToString();
//listBox3.Items.Add(numara);
listBox1.Items.Add(dataokunan);//listboxa ekle
//mesajın ulaştığına dair
bilgi client makinesine yollanıyor
String gidenveri = "Ulasmistir ";//cliente gönderilecek uyarı
belitlendi
Byte[] gidenbyte =
System.Text.Encoding.ASCII.GetBytes(gidenveri.ToCharArray());
//porttan gönderilecek veri
byta a çevrildi
socket1.Send(gidenbyte, gidenbyte.Length,
0);//göndderiliyor
string numara;
numara =
IPAddress.Parse(((IPEndPoint)socket1.RemoteEndPoint).Address.ToString()).ToString();
if (listBox3.Items.Contains(numara) == false)
{
listBox3.Items.Add(numara);
numara = "";
}
tcplistener.Stop();//Dinlemeyi iptal et
i++;//bağlantı sayısını 1 arttırır
//textBox1.Text = listBox1.Items[Convert.ToInt32(
label3.Text)].ToString();
string yeni = listBox1.Items[0] .ToString();
//textBox1.Text = yeni; //texde veriyi almak lisboxdan
parcalar = yeni.Split(' ');
string bs= label3.Text;
if (Convert.ToInt32(bs) ==1)
{
label7.Text = DateTime.Now.ToShortTimeString();
string ad = parcalar[0].ToString();
label4.Text = ad;
}
else
{
tcplistener.Start();
label8.Text = DateTime.Now.ToShortTimeString();
DateTime ilkdeger =Convert.ToDateTime( label7.Text); //1
DateTime sondeger = Convert.ToDateTime(label8.Text); //2
string yeni1 = listBox1.Items[1].ToString();
parcalar = yeni1.Split(' ');
bakiye = parcalar[1].ToString();
label5.Text = bakiye;
System.TimeSpan zaman; //3
zaman = sondeger.Subtract(ilkdeger); //4
int toplamdakika = Convert.ToInt32(zaman.TotalMinutes); //5
label9.Text =
toplamdakika.ToString();
ucret=(Convert.ToDouble(toplamdakika)*0.1).ToString();
kalanbakiye = (Convert.ToDouble(bakiye) -
Convert.ToDouble(ucret)).ToString();
label10.Text = kalanbakiye.ToString();
Socket socket2 = tcplistener.AcceptSocket();
String gidenbakiye = kalanbakiye;//cliente
gönderilecek uyarı belitlendi
Byte[] gidenbyte1 =
System.Text.Encoding.ASCII.GetBytes(gidenbakiye.ToCharArray());
//porttan gönderilecek veri byta
açevrildi
socket2.Send(gidenbyte1, gidenbyte1.Length, 0);//göndderiliyor
}
}
}
catch
(SocketException se)
{
MessageBox.Show(this, "Transfer işleminde hata oluştu.");
}
}
private
void Form1_Load(object sender, System.EventArgs e)
{
prestige();
}
}
}
--------------------------------------------------------------------------------------
CLIENT
using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace denemeclient
{
public partial
class Form1 : System.Windows.Forms.Form
{
public
Form1()
{
InitializeComponent();
}
static void
Main()
{
Application.Run(new Form1());
}
private int
i = 1;//gönderilen mesaj saısını tutacak
private int
k = 1;
private
void button1_Click(object sender, System.EventArgs e)
{
if (k
== 1)
{
textBox2.Hide();
textBox1.Enabled = false;
label2.Hide();
button1.Text = "Çıkış";
label3.Hide();
}
if (k
== 2)
{
button1.Text = "Kalan Bakiye İçin Tıklayınız";
}
if (k
== 3)
{
button1.Hide();
}
k++;
TcpClient tcpclient = new TcpClient("169.254.175.119", 9990);
try
{
NetworkStream networkstream = tcpclient.GetStream();
if
(networkstream.CanWrite)//yazma
modundaysa
{
Byte[] giden = Encoding.UTF8.GetBytes( textBox1.Text + "
"+textBox2.Text);
//Byte[] giden1 =
Encoding.UTF8.GetBytes( textBox2.Text + " ");//stringi byta çevirir
networkstream.Write(giden, 0, giden.Length);
//networkstream.Write(giden1, 0, giden1.Length);//yaz
this.Text = "Gönderildi";
}
else
{
tcpclient.Close();//Bağlantıyı
kapatır
return;
}
if
(networkstream.CanRead)//okuma
modundaysa
{
byte[] oku = new byte[tcpclient.ReceiveBufferSize];//porttan gelen karakter sayısı kadar eleman olustur
networkstream.Read(oku, 0, (int)tcpclient.ReceiveBufferSize);//porttan
oku
string gelen = Encoding.ASCII.GetString(oku);//bytı stringe çevir
tcpclient.Close(); //Kapat
listBox1.Items.Add(i.ToString() + " .ci " + gelen); //listeye ekle
i++;
return;
}
else
{
tcpclient.Close();//Kapat
return;
}
}
catch
(Exception w)
{
MessageBox.Show(this, "Bağlantıda hata oluştu");
tcpclient.Close();//Kapat
}
}
}
}