Öncelikle linux işletim sistemi üzerinde yazıyor olmamın nedeniyle anlatımı linux üzerinden anlatacağım.Kodları rahatlıkla windows işletim sisteminizdede deneyerek uygulayabilirsiniz..
Linux kullanıcıları için sisteminizde ruby yüklü olmadığını varsayarak ;
Ubuntu kullanıcıları : Uçbirim > sudo apt-get install ruby
Fedora kullanıcıları : sudo yum install ruby
[...]
Farklı sistem kullananlar lütfen sistemlerinde ruby paketlerinin hali hazırda yüklü olup olmadığını kontrol etsinler.
Şİmdi tcp/ip üzerine ilk akla gelen client/server yapısıdır çoğu zaman( Uygulamalar açısından)
Server tarafının görevleri bağlantı kurmak ve balantıları dinlemek.Ek olarak cliente isteğe bağlı ileti yollamak veya yön vermektir.
Client'in yapısına baktığımızda ise bağlantıyı kurmak,mesaj göndermek,sunucudan mesaj almak,server ile bağlantıyı sonlandırmak.
İlk öncelikle eklememiz gereken betik socket dir.Bütün tcp/ip trafiği soketler üzerinden işlemektedir.Sunucudan gelecek istekleri kabul etmek veya bir bağlantı sağlamak soketler ile olacaktır..
Kodlarımıza geçelim.Gerekli açıklamaları yorum etiketleri ile belirteceğim..
CODE:
#! /usr/bin/ruby
require 'socket'
puts "Sunucuyu başlattık"
# Bağlantı kurduk
# Bağlantı noktası oluşturmamız gerekiyor 2009 olaral belirleyelim
server = TCPServer.new(2009)
#Bağlantıları kabul edelim ve dinlemeye alalım
while (session = server.accept)
# thread oluşturacağız ve başlatacağız
Thread.start do
# Bağlantının oluştuğunu göstermek için çıktı içerisinde fonksiyonumuzu yazalım
puts "çıktı: Bağlantı # {session.preeaddr[2]} at
#{session.preeaddr[3]}"
puts "Client'inden"
input = session.gets
puts input
#Karşılama mesajı verelim
session.puts "Server : Hoşgeldiniz # {session.preeaddr{2]}n"
#Çıkış mesajı verelim
puts "çıktı:Hoşçakalın"
session.puts "Server: Hoşçakalınn"
end # thread larımızı sonlandırdık
end # Döngüyü sonlandırdık
Şİmdide Client'e bakalım..
CODE:
#!/ usr/bin/ruby
require 'socket'
clientSession = TCPSocket.new( "localhost" ,2009 )
puts "çıktı: Bağlantı sağlandı"
puts "çıktı:Selam"
clientSession.puts "Client: Selam Server!n"
while ! (clientSession.closed?) &&
(serverMessage = clientSession.gets)
puts serverMessage
# Bağlantıyı kapatalım ve mesaj verelim
if serverMessage.include?("Hoşçakalın")
puts "çıktı: Bağlantı Sona erdi"
clientSession.close
end
end # Döngüyü sonlandırdık
Üstteki server.rb şeklinde kayıt edin. Alttakini ise client.rb şeklinde kayıt edin.
Öncelikle server ı başlatın.Daha sonra clienti başlatabilirsiniz.Kolay gelsin.
Oguzz.. thecoders.net
Oguzz
oguz@thecoders.net
23 Ekim 2007 11:33