TClientSocket ile farklı portlardan gönderme ve alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
dpcmsx
Üye
Mesajlar: 22
Kayıt: 06 Eyl 2011 04:25

TClientSocket ile farklı portlardan gönderme ve alma

Mesaj gönderen dpcmsx »

Herkese selamlar,

Kısaca şöyle bir problemim var;

Bir sunucuya (web) kısa bir satır göndereceğim (Örneğin : HELLO1234) Bu gönderme işlemini sunucu sadece 278 numaralı porttan kabul ediyor. Sunucu bunu alınca bana 282 nolu porttan cevap gönderecek (Ornegin : OKEY1234 gibi)

Dolasıyla gönderme portunu :

ClientSocket1.Host:='mysite.test.com';
ClientSocket1.Port:=278;

şeklinde ayarlıyabiliyorum. Dolasıyla sonucunun cevap vereceği 282 nolu portu göndermeden hemen sonra (cevabı) okumam gerek. Yani kısa aralıkla 278 portundan gönderip 282 portundan cevap almam gerek. Birkaç deneme yaptım fakat sonuç alamadım. Göndermem tamam ancak sunucunun cevabını alıp Memo'ya veremiyorum.

Kısa zamanlarda iki ayrı porttan hem gönderme hemde almam için ne yapmalıyım ?


İyi çalışmalar dilerim.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: TClientSocket ile farklı portlardan gönderme ve alma

Mesaj gönderen unicorn64 »

client nesnesiyle dinleme yapamazsınız diye biliyorum, server dinler client bağlanır, 282 portunu server nesnesiyle (TClientSocket) dinleyip ordan iletişim kurabilirsiniz ama tabi karşı taraf mesajı göndermeden önce size bağlanmalı...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TClientSocket ile farklı portlardan gönderme ve alma

Mesaj gönderen ikra »

Bunlar kendi kafamdan gecirdigim seneryolar!!!
server client'i dinledigi gibi, client te serveri dinler.
server port dinler, client ise server'i dinler. böylesi daha dogru oldu sanirim.

1) cevap verecek tarafta bir server bir de client oldugunu sanmiyorum. bu yanlis bir yapi olurdu.
siz 123 portundan mesaj gönderdiginizde karsi taraf size cevap vermek icin 321'i kullanacaksa ve bu cevabi size ulastirmak icin size baglanmasi gerekiyorsa ve ayni esnada birden fazla istem geldi ise client hangi server'e baglanacak?

2) client sizdeki server'e baglanmaya calisti diyelim ve siz C tipi bir networktan cikis yaptiniz. üstelik router üzerinde port yönlendirmeniz yok. peki böyle bir durum söz konusu oldugunda cevap verecek olan client cevap bekleyen 321 portundaki server'e nasil baglanacak?

3) cevap verecek olan client sizdeki serversocket'e baglanamadiginda error mesajini nasil alacaksiniz?

4) server 123 portundan sizi dinliyorsa, cevap olarak nasil 321'i kullanir? bu mümkün degil. yada dedigim gibi yapi hatasi var.

Bu kisimdan itibaren cevap
iki adet TClientSocket'in iki farkli port'tan iki farkli ServerSocket'e baglanmasi ve birinde SendText digerine ise ReceiveText kullanilmasi gerekir.
kıdemsiz üye
dpcmsx
Üye
Mesajlar: 22
Kayıt: 06 Eyl 2011 04:25

Re: TClientSocket ile farklı portlardan gönderme ve alma

Mesaj gönderen dpcmsx »

Sayın ikra,

ClientSocket'te hem read hemde write event işlemleri var. Tek port olunca karşılıklı haberleşme mümkün oluyor. Örneğin sendtext ile gönderince server bunu alıyor ve kendisi yine sendtext ile client'e gönderiyor. Böylece karşılıklı gidip geliyor. Sorun server olarak düşünülen kısmın portunun farklı olmasında. Ancak dediğiniz gibi 2 clientsocket kullanabiliriz sanırım.

Fikirleriniz gayet mantıklı, deneyeceğim.

Teşekkürler.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TClientSocket ile farklı portlardan gönderme ve alma

Mesaj gönderen ikra »

tamam güzel kardesim, bende ayni seyleri yazdim.
4) server 123 portundan sizi dinliyorsa, cevap olarak nasil 321'i kullanir? bu mümkün degil. yada dedigim gibi yapi hatasi var.
Allah sabir ve muvaffakiyet versin insaAllah...
kıdemsiz üye
Cevapla