1-) C# - soket1
Server için Formumuza 3 Tane Düğme, 2 tane texbox A.Ş. 1 tanede richTextBox ve birde Label koyalım
1-)server.cs
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace Server
{
public partial class Form1 : Form
{
//Gerekli Siniflarin Nesneleri tanimlaniyor
Thread t;
IPAddress ipadresimiz;
TcpListener dinle;
Socket soket;
NetworkStream ag;
StreamReader oku;
StreamWriter yaz;
public delegate void ricdegis(string text);
public Form1()
{
InitializeComponent();
}
// Serverde Method_1
public void okumayabasla()
{
soket = dinle.AcceptSocket();
ag = new NetworkStream(soket);
oku = new StreamReader(ag);
while (true)
{
try
{
string yazi = oku.ReadLine();
ekranabas(yazi);
}
catch
{
return;
}
}
}
// Serverde Method_2 (Gelen Veriyi richTextBox icine yazdirmak icin)
public void ekranabas(string s)
{
if (this.InvokeRequired)
{
ricdegis degis = new ricdegis(ekranabas);
this.Invoke(degis, s);
}
else
{
s = "Server: " + s;
richTextBox1.AppendText(s + "n");
}
}
// Serverde Method_3 (Serverimizin Port dinlemesine baslamsi icin)
private void dinlemeye_basla()
{
try
{
ipadresimiz = IPAddress.Parse("127.0.0.1");
dinle = new TcpListener(ipadresimiz, Convert.ToInt16(textBox1.Text));
dinle.Start();
t = new Thread(new ThreadStart(okumayabasla));
t.Start();
richTextBox1.AppendText(DateTime.Now.ToString()+" Dinleme baslatildi...n");
}
catch (Exception)
{
MessageBox.Show("Dinleme baslatilamadi");
}
}
private void button1_Click(object sender, EventArgs e)
{
dinlemeye_basla();
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox2.Text == "")
//Burda bos alan göndermeyi önlüyoruz...
return;
else
{
yaz = new StreamWriter(ag);
yaz.WriteLine(textBox2.Text);
yaz.Flush();
richTextBox1.AppendText(textBox2.Text + "n");
textBox2.Text = "";
}
}
private void button3_Click(object sender, EventArgs e)
{
ag.Close();
}
}
}
2-)Client.cs
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace Server
{
public partial class Form1 : Form
{
//Yine gerekli Siniflarin nesneleri tanimlaniyor
Thread t;
TcpClient baglantikur;
NetworkStream ag;
StreamReader oku;
StreamWriter yaz;
public delegate void ricdegis(string text);
public Form1()
{
InitializeComponent();
}
// Clintde Method_1 (Gelen veri okunuyor)
public void okumayabasla()
{
ag = baglantikur.GetStream();
oku = new StreamReader(ag);
while (true)
{
try
{
string yazi = oku.ReadLine();
ekranabas(yazi);
}
catch
{
return;
}
}
}
// Clientde Method_2 (Okunan Veri richTextBox icine yaziliyor)
public void ekranabas(string s)
{
if (this.InvokeRequired)
{
ricdegis degis = new ricdegis(ekranabas);
this.Invoke(degis, s);
}
else
{
s = "Client: " + s;
richTextBox1.AppendText(s + "n");
}
}
// Clientde Method_3 (Istenilen IP'ye istenen Port üzerinden baglaniliyor)
public void baglanti_kur()
{
try
{
//Ben Lochalhos üzerinde deneme yapacagim icin 127.0.0.1 verdim
baglantikur = new TcpClient("127.0.0.1", Convert.ToInt16(textBox1.Text));
t = new Thread(new ThreadStart(okumayabasla));
t.Start();
richTextBox1.AppendText(DateTime.Now.ToString()+" Baglanti kuruldu...n");
}
catch (Exception)
{
MessageBox.Show("Server ile baglanti kurulurken hata olustu !");
}
}
private void button1_Click(object sender, EventArgs e)
{
baglanti_kur();
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox2.Text == "")
//Burda bos alan göndermeyi önlüyoruz...
return;
else
{
yaz = new StreamWriter(ag);
yaz.WriteLine(textBox2.Text);
yaz.Flush();
richTextBox1.AppendText(textBox2.Text + "n");
textBox2.Text = "";
}
}
private void button3_Click(object sender, EventArgs e)
{
baglantikur.Client.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}