Üye
Selam Arkadaşlar!
Kodun içinde detaylı bir şekilde anlattım. iyi forumlar.

Server.pl
Çıktı
Client.pl
Çıktı
Kodun içinde detaylı bir şekilde anlattım. iyi forumlar.
Server.pl
Perl:
use Socket; # Socket libraryisini içeriye aktarıyoruz.
sub SunucuKur { # SunucuKur Fonksiyonu Tanıtılıyor
print "Sunucu @_[0]:@_[1] üzerinden kuruluyor.\n"; # @_ bir arraydir ve foknsiyon içinde argüman arrayını temsil eder.
socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2]); # İlk argüman Soketimiz SOCKET değişkenine atamasını istedik. 2. argüman İnternet Bağlantısı. 3. Argüman Tcp protokolü olduğunu temsil ediyor. 4.Argüman Internet protokolünü ipv4 ipv6 vs.
bind(SOCKET, pack_sockaddr_in(@_[1],inet_aton(@_[0]))) or return 0;
# İlk argüman oluşturduğumuz SOCKET değişkeni. 2. argümanda pack_sockaddr_in fonksiyonu kullandık çünkü ip adresimizi ve portumuzu binary formatında paketlememiz gerekiyor.
# iki argüman verdik 1.si portumuz olan fonksiyonumuzun 2.ci argümanı @_[1], 2. argüman ise inet_aton kullandık bu domain veya ipyi 4 bytelik formata indirger.
listen(SOCKET,5) or return 0; # Sunucumuzun maksimum 5 kullanıcıya izin verecek.
return 1;
}
$ip = "127.0.0.1";
$port = 3322;
$sonuc = SunucuKur($ip,$port);
print $sonuc ? "Sunucu başarılı bir şekilde kuruldu. $ip:$port\n" : die("Maalesef sunucu kurulamadı.\n"); # Eğer fonksiyondan başarısız sinyali gelirse mesajı sağdaki mesajı yazdırıp program çıkar yoksa soldaki yazı yazdırlır ve program devam eder.
print "Sunucu ayarlanıyor.";
accept(CLIENT,SOCKET); # Yeni bağlantı beklenilir. Ve bağlantı geldiğinde CLIENT değikenine atanır.
print CLIENT "Gorusuruz canim."; # Bağlanan kullanıcıya mesaj gönderilir.
close(CLIENT); # bağlanan kullanıcı ile bağlantı kesilir.
Kod:
Sunucu 127.0.0.1:3322 üzerinden kuruluyor.
Sunucu başarılı bir şekilde kuruldu. 127.0.0.1:3322
Sunucu ayarlanıyor.
Perl:
use Socket;
sub SunucuyaBaglan{ # SunucuBaglan Fonksiyonu Tanıtılıyor
print "@_[0]:@_[1] Sunucusuna Bağlanılıyor.\n";
socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2]); # Soket oluşturuluyor.
connect(SOCKET, pack_sockaddr_in($_[1],inet_aton($_[0]))) or die("Maalesef Sunucuya bağlanılamadı.\n"); # Sunucuya bağlanılmak için ip adresi ve port paketlenip fonksiyona soket ile birlikte gönderiliyor.
print "Sunucuya başarılı bir şekilde bağlandı\n";
my $mesaj; # local $mesaj değişkeni oluşturulur.
recv(SOCKET,$mesaj,16,0); # 17 bytelik veri okunuyor ve local $mesaj değişkenine aktarılıyor.
print $mesaj;# $mesaj yazdırılıyor.
close(SOCKET); # bağlantı kesilir.
}
SunucuyaBaglan("127.0.0.1",3322);
Kod:
127.0.0.1:3322 Sunucusuna Bağlanılıyor.
Sunucuya başarılı bir şekilde bağlandı
Gorusuruz canim.