- 12 Eyl 2008
- 17
- 0
s.a arkadaşlar size socket programlama da soket programlamanın mantığını ve küçük bir server oluşturmayı anlatacağım
şimdi bir iş görüşmesine gideceksiniz bu iş yeri görüşmelerini örnek 5 farklı odada yapıyor ve görüşeceğiniz kişiyi daha önceden bilmiyorsunuz.
peki bu kişi hangi odada ve kim bunu nasıl bilebiliriz
cevap basit görüşeceğimiz kişi ye bir numara verirsek ve bu kişinin hangi odada olduğu söylenirse basitçe bu kişiyi bulabiliriz.
İşte bilgisayarlarda birbirleri ile iletişime geçerken bu bilgilere ihtiyaç duyar.
bu bilgiler basitçe ip adresi ve port numarasıdır
şimdi bunu server kodları üstünde açıklayayım
bu proglama ile trojan,keylogger,multiplayer oyunlar gibi programların temellerini oluşturur.
ilk önce kütüphaneleri çekelim
burda ek olarak .net.sockets ve .net kütüphanelerini ekledik
şimdi forma bir buton ,text box (textbox programda text box2 şeklinde olduğundan program dakini siz kendi vereceğiniz bir isimle değiştirin)ve bir rich text box koyun içine;
yerleştirin peki bu ne anlama geliyor
ilk önce ip tanımladık.ve bu ip yi nereden alacağını söyledik
şimdi bir listener tanımı yapalım yani dinleyici
bunun için 2 nesneye ihtiyaç var port ve ip adresi
bunları tanıladıkdan sonra listen.start() ile listen başlatalım
şimdi veri paylaşımı için bir client tanımlayalım
bu client tanımında herhangi bir özellik olmadığından default(TcpClient) şeklinde tanımlıyoruz.
listenerı cliente tanıtalım
client = listen.AcceptTcpClient();
şimdi bir stream oluşturup
bu streame clienti tanıtalım getstream veri alışverişinin oluşması için gereklidir.
NetworkStream stream = client.GetStream();
bazı kontroller ekleyelim if,else try catch gibi programı daha rahat yönetebilmemiz için
sonra veri alışverişini tanımlayalım biliyosunuzki bilgisayarlar yazdığımız kelimeleri bytlere çevirir sonra onları analiz eder ve sonra bize cevap gönderir bizde burda bunu sağlayacağız yazımızı bytlara çevireceğiz:
burada yeni bir byte tanımladık
stream read ile byte ı okuduk tamamını okumak için
(int)client.ReceiveBufferSize ifadesini kullandık
sonra bir string tanımladık ve buna "oku" nesnesinden gelen bilgileri bizim anlayacağımız
yazılara döndürecek System.Text.Encoding.ASCII.GetString(oku) ifadesini kullanıp bytları string şeklinde formumuzda gösterdik
İşte server programlama temeli bu arkadaşlar
inşallah faydalı bir şey sunmuşumdur
şimdi bir iş görüşmesine gideceksiniz bu iş yeri görüşmelerini örnek 5 farklı odada yapıyor ve görüşeceğiniz kişiyi daha önceden bilmiyorsunuz.
peki bu kişi hangi odada ve kim bunu nasıl bilebiliriz
cevap basit görüşeceğimiz kişi ye bir numara verirsek ve bu kişinin hangi odada olduğu söylenirse basitçe bu kişiyi bulabiliriz.
İşte bilgisayarlarda birbirleri ile iletişime geçerken bu bilgilere ihtiyaç duyar.
bu bilgiler basitçe ip adresi ve port numarasıdır
şimdi bunu server kodları üstünde açıklayayım
bu proglama ile trojan,keylogger,multiplayer oyunlar gibi programların temellerini oluşturur.
ilk önce kütüphaneleri çekelim
Kod:
using System;
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.Sockets;
using System.Net;
burda ek olarak .net.sockets ve .net kütüphanelerini ekledik
şimdi forma bir buton ,text box (textbox programda text box2 şeklinde olduğundan program dakini siz kendi vereceğiniz bir isimle değiştirin)ve bir rich text box koyun içine;
Kod:
IPAddress ip = IPAddress.Parse(textBox2.Text);
TcpListener listen = new TcpListener(ip,8888);
listen.Start();
TcpClient client = default(TcpClient);
client = listen.AcceptTcpClient();
NetworkStream stream = client.GetStream();
if (!client.Connected)
{
richTextBox1.Text = "bağlanamadı";
}
else
{
richTextBox1.Text = "başladı";
try
{
richTextBox1.Text = "Server Başladı";
byte[] oku = new byte[10025];
stream.Read(oku, 0, (int)client.ReceiveBufferSize);
string yaz = System.Text.Encoding.ASCII.GetString(oku);
stream.Flush();
textBox1.Text = yaz;
richTextBox1.Text = "geldi" + yaz;
richTextBox1.Text = "Bilgi Almak İçin Al butonuna bas";
client.Close();
listen.Stop();
return;
}
catch
{
richTextBox1.Text = "iletişim Başarısız";
}
}
ilk önce ip tanımladık.ve bu ip yi nereden alacağını söyledik
şimdi bir listener tanımı yapalım yani dinleyici
bunun için 2 nesneye ihtiyaç var port ve ip adresi
bunları tanıladıkdan sonra listen.start() ile listen başlatalım
şimdi veri paylaşımı için bir client tanımlayalım
bu client tanımında herhangi bir özellik olmadığından default(TcpClient) şeklinde tanımlıyoruz.
listenerı cliente tanıtalım
client = listen.AcceptTcpClient();
şimdi bir stream oluşturup
bu streame clienti tanıtalım getstream veri alışverişinin oluşması için gereklidir.
NetworkStream stream = client.GetStream();
bazı kontroller ekleyelim if,else try catch gibi programı daha rahat yönetebilmemiz için
sonra veri alışverişini tanımlayalım biliyosunuzki bilgisayarlar yazdığımız kelimeleri bytlere çevirir sonra onları analiz eder ve sonra bize cevap gönderir bizde burda bunu sağlayacağız yazımızı bytlara çevireceğiz:
Kod:
byte[] oku = new byte[10025];
stream.Read(oku, 0, (int)client.ReceiveBufferSize);
string yaz = System.Text.Encoding.ASCII.GetString(oku);
stream.Flush();
richTextBox1.Text = "geldi" + yaz;
stream read ile byte ı okuduk tamamını okumak için
(int)client.ReceiveBufferSize ifadesini kullandık
sonra bir string tanımladık ve buna "oku" nesnesinden gelen bilgileri bizim anlayacağımız
yazılara döndürecek System.Text.Encoding.ASCII.GetString(oku) ifadesini kullanıp bytları string şeklinde formumuzda gösterdik
İşte server programlama temeli bu arkadaşlar
inşallah faydalı bir şey sunmuşumdur