Forum
slm arkadaşar ben delphide peer to peer mantığı ile bir program yapmak istiyorum. bir sorunum var ben normalde routerden port yönlendirerek wan agdan local agdaki bilgisayara connection oluyorum. mirc gibi programlar peer to peer mantıgı ile calışıyorlar. mirc serverlara baglanan clientleri bir birlerine connection oluyorlar ve server aradan cıkıyor. buradaki clientler bir birlerine nasıl connec oluyorlar anlamadım yani routerden hiç bir port yönlendirmesi yapmadan. bir de bu sanal ag oluşturma ne demek. yani araştırmalarımdan irc server bir sanal ag oluşturuyor ve bu agdaki clientler bir birleri ile irc serverdan aldıkları bilgiler ile haberleşiyorlar. yani benim bildigim sistemlerde serverdan bir client digeri ile ilgili bilgiyi alır (ip,port no) ve bu bilgiler ile diger cliente connectiona olur. bu arada her clientte bir server var. bilmiyorum inşallah anlata bilmişimdir. burda sormak istedigim peer to peer bir baglantı kurmak için neler yapmak gerekir. (önemli bir nokta routerden hiç bir ayar yapmadan...) teşekkürler
Selamlar, P2p programlama gerçekten kompleks bir konu. Bu konuda kullanılan çeşitli yöntemler var. Ama hemen hemen hepsinde bir index server'a bağlanılması söz konusu. Konu clientların birbirlerine bağlamasına gelince son zamanlarda routerlar üzerinde upnp desteği standart halini aldı. upnp sayesinde kendi client programınızdan routerda port yönlendirmesi yapabilirsiniz. bu konuda delphi ile yazılmış componentler de mevcut. ayrıca anlamanıza yardımcı olması bakımından şu programa da bi göz atın derim. yanında kaynak kodları da mevcut. Son olarak dosyalar bölümüne sizin için p2p uygulama geliştirme ile ilgili bir kitap ve örnek kodlarını attım umarım işinize yarar.
http://cozumpark.com/files/folders/yuklemeler/entry36329.aspx
Upnp ile yönlendirme yapabilmeniz için routerın bunu destekliyor olması ve açık olması gerekir ve birçok cihazda açık olarak geliyor zaten. emule 0.48 ve üstü , yeni nesil bittorrent clientları hep bu yöntemi kullanmaktadır. Ama örn; ISA serverda upnp desteği yok, bazı durumlarda port yönlendirmesinden başka çareniz yok.
kolay gelsin...
kardeş öncelik olarak teşekkürler ilgilendigin için. ama bir sorun var be fazla c# ve java bilmiyorum. delphiden örnek varmı. wanda calışan. ya vallahi kafayı yiyecegim hiç bir örnek bulamadım. birde senin upnp compenentlerini kurdum ama ben onlarla ilgili hiç bir örnek bulamadım. upnp yi biraz anlatırmısın teşekürler...
Selamlar,
Neticede size adresini verdiğim component ile upnp yi kullanabilmeniz lazım. Şu an makinamda delphi olmadığı için deneyemiyorum. upnp basit olarak; uyumlu network cihazları üzerinde uzaktan sorgular ve komutlar çalıştırmamızı sağlayan basit bir protokoldür. Bunu kullanabilmeniz için temel network programcılığı bilginizin olması gerekir. sdklar yardımıyla da kullanabilirsiniz fakat delphi için uygun çok fazla sdk ve örnek bulmak zor.
1999 yılında (sanırım o zaman delphi4 vardı) delphi ile ms vb yi kıyaslamak bile zordu. delphi 32bit programlama için tekel konumundaydı. Her türlü yeni teknoloji ile ilgili örneği bulmak mümkündü delphi için. Microsoft Developer Days 1999'a katılmıştım ve orda .net diye bişeyden bahsetti adamlar. Bizde dedik ki nedir bu tutar mı acep. Gerçi o zamanki .net konsepti şimdikinin biraz dışındaydı ama aradan geçen 10 yılın üstüne .net in şu anki durumu ortada. Eğer yeni başlayan bir programcı iseniz -acizane- vakit kaybetmeden yolunuzu seçmenizi öneririm ve c# tavsiye ederim. Bende o yıllarda birkaç tercih yapmıştım. Önce yazılım mı sistem mi deyip sistemi seçtim. Sonra novellci olduk ama baktık novell iyi gitmiyo 4.11 versiyonundan sonra bozuldu iyice ve windows 2000 işletim sistemi çok iddalı NT'nin sıkıntılarından uzak , hemen yönümüzü değiştirdik ki iyiki de yapmışız. Bizim sektörde bu tarz kararları erken vermek geleceğimiz için çok önemlidir. Bunları sadece sizin için değil bu postu okuyup faydalanacak diğer arkadaşlar için de yazdım. Ayrıca yapı olarak ikiside object oriented diller olduğu için delphiden c# geçmek sizin için çok basit olacaktır. Ayrıca deplhi ide'si ücretliyken vs c# express ücretsizdir ve ticari uygulamalar geliştirip satabilirsiniz.
upnp ile ilgili detayları http://www.upnp.org/ adresinden alabilirsiniz.
Kolay gelsin...
+ [DLINK IGD] (Device)
| DeviceType: urn:schemas-upnp-org:device:InternetGatewayDevice:1
| FriendlyName: DLINK Internet Gateway Device
| ManufacturerUrl: http://www.dlink.com/
| Manufacturer: DLINK
| ModelName: DLINK IGD
| UDN: uuid:75802409-bccb-40e7-8e6c-fa095ecce13e
| PresentationUrl: http://192.168.1.1/
|
+-+ [WANDevice] (Device)
| | Description: WAN Device on DLINK IGD
| | DeviceType: urn:schemas-upnp-org:device:WANDevice:1
| | FriendlyName: WANDevice
| | ModelURL: http://www.dlink.com/
| | ManufacturerUrl: http://www.dlink.com/
| | UPC: DLINK IGD
| | Manufacturer: DLINK
| | SerialNumber: 0.92
| | ModelNumber: 0.92
| | ModelName: DLINK IGD
| | UDN: uuid:75802409-bccb-40e7-8e6c-fa095ecce13e
| |
| +-+ [WANConnectionDevice] (Device)
| | | Description: WanConnectionDevice on DLINK IGD
| | | DeviceType: urn:schemas-upnp-org:device:WANConnectionDevice:1
| | | FriendlyName: WANConnectionDevice
| | | ModelURL: http://www.dlink.com/
| | | ManufacturerUrl: http://www.dlink.com/
| | | UPC: DLINK IGD
| | | Manufacturer: DLINK
| | | SerialNumber: 0.92
| | | ModelNumber: 0.92
| | | ModelName: DLINK IGD
| | | UDN: uuid:75802409-bccb-40e7-8e6c-fa095ecce13e
| | |
| | +-+ [WANIPConnection] (Service)
| | | | PortMappingNumberOfEntries: 0
| | | | ExternalIPAddress: 78.165.191.54
| | | | ConnectionStatus: Connected
| | | | PossibleConnectionTypes: IP_Routed
| | | | X_Name: Local Area Connection
| |
| +-+ [WANCommonInterfaceConfig] (Service)
| | | PhysicalLinkStatus: UP
|
+-+ [OSInfo] (Service)
| | OSMajorVersion: 5
| | OSMinorVersion: 1
| | OSMachineName: DSL-500T
| | OSBuildNumber: 2600
kardeş bunlar ney vermiş oldugun componentlerin içindede geciyor ama ben birşey anlamadım...