Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Java / JSP

Cevapla
 
LinkBack Seçenekler
Eski 28/04/2007, 20:54   #1 (permalink)
Üye
 
futi Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2006
Mesaj: 80
Varsayılan Socket Proggramming hakkında

merhaba...
bu aralar soket programlama ile ugrasiyorum da sorum su:

normal olarak server 'im var. Clientim var. komut satırından "java Client" girdigimde sorunsuz bir sekilde program calisiyor gerekli mesajı yazdırıp programdan cikiyor.

benim amacım, clienti sürekli baglantida tutmak, server accept() metoduyla sürekli baglanti beklerken, ben bunu clientde nasıl yapabilriim teşekkürler..
__________________
YTU Computer Engineering - ©2005
http://afsungur.blogspot.com
futi hatta değil   Alıntı Yaparak Yanıtla
Eski 30/04/2007, 10:53   #2 (permalink)
Eski Cevizci
 
Üyelik Tarihi: 06/2003
Mesaj: 131
Varsayılan

Merhaba,

Senin için basit bir ornek derledim.
Kodda gorebileceğin gibi konuşan kısmı bir dongu içine almaktan başka bir esprisi yok olayın, fakat burda socketi sürekli açık tutmaktan ziyade tasarım ile ilgili başka sorunlar var. Şöyleki;
1. Socketi sürekli acık tutacaksan, ve programınında run etmeye devam etmesini isteyeceğine göre bunu ayrı bir thread'de halletmen gerekiyor.
(aşağıdaki ornek bu problemi çözüyor)
2.Server'a gondereceğin dataları bu thread'e geçecek bir pool yazman gerekiyor.
3.Server'dan gelen response dataların yorumlanması (bu datalar basit şeyler değilse) uzun sürebilir. bu durumda onları yorumlayacak ayrı thread'ler başlatman gerekiyor.
4. Server'dan gelen response'ları komutu gondermek isteyene bildirmek istiyorsan bir geri donuş tutamacı hazırlaman gerekiyor.

Not: aşağıdaki ornek gayet basit bir yaklaşım sergiler, server ile senkron olarak konuşur. Asenkron olarak konuşabilmek için farklı bir tasarım düşünmen yada daha iyisi nio(new i/o yada non-blocking i/o diye geçer) konusuna bir bakman faydalı olur.

<code>
public class Talker extends Thread {

private volatile boolean continue;
public synchronized boolean getContinue() { return continue; }
public synchronized void setContinue(boolean continue) { this.continue= continue; }

private String host;
private int port;

public Talker(String host, int port) {
super();

setContinue(true);
this.host= host;
this.port= port;

//start the talker thread
//this.start();
}

public void run() {
Socket sock= new Socket(host, port);
PrintWriter toServer= new PrintWriter( sock.getOutputStream() );
BufferedReader fromServer= new BufferedReader( new InputStreamReader(sock.getInputStream()) );
while( getContinue() ) {
String toServerLine= "naber yalan dunya!\n";
toServer.print( commandLine );
toServer.flush();
String fromServerLine= fromServer.readLine();
//use server response here!
}
toServer.close();
fromServer.close();
sock.close();
}
}
</code>

Yukarıdaki sınıfı şu şekilde kullanabilirsin;

Talker talker= new Talker("127.0.0.1", 18281);
talker.start();

Kolaylıklar dilerim.
karatoprak hatta değil   Alıntı Yaparak Yanıtla
Eski 06/05/2007, 13:23   #3 (permalink)
Üye
 
dkoksal Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2007
Yer: Ankara
Mesaj: 529
Varsayılan

İstemci ve sunucu kod örnekleri için incelemelisin.
dkoksal hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
XML socket server keramet C / C++ 0 13/02/2007 02:53
Socket Programlama HunTER Genel Programlama 40 13/05/2006 11:09
Socket Bağlantı Hakkında.. PhpX PHP 13 16/10/2005 03:17
Socket Programming?? JAKOB_BG C / C++ 7 22/06/2004 15:59
socket-audio civicim Java / JSP 2 23/05/2004 10:05


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 19:37.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net