DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
526
Tıklama
0
Öne Çıkarma
Java sunucu istemci basit bir soru?
V
13 yıl (1065 mesaj)
Yüzbaşı
Konu Sahibi

Yarın sınavım var da şöyle bir soru var. Yardımcı olabilirseniz sevinirim.

İstemci tarafında sunucudan bir karenin kenar uzunluğu bilgisi alınacak, bu bilgi sunucuya gönderilecek, sunucu da istemciden aldığı kenar uzunluğu bilgisini kullanarak karenin alanını hesaplayacak ve hesaplanan bu alanı istemciye gönderecek. (Kenar Double tipinde olacak)

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
13 yıl (1559 mesaj)
Yüzbaşı

Sunucu derken webservis mi kastediliyor? Eğer oyleyse yapman gereken bir webservis yazıp buna gönderilcek verinin double olarak alınıp . karesini hesaplayıp . geri karesini double olarak döndürmen gerekir ..

açıklaması bu olurdu herhalde .


"stemci tarafında sunucudan bir karenin kenar uzunluğu bilgisi alınacak," bunu anlamadım ? sunucudan rastgele kenar uzunluğu mu isteniyor?


Bu mesaja 1 cevap geldi.
G
13 yıl (21343 mesaj)
Yarbay

socket lerden bahsediyordur bence.

bu ornegi her socket leri ogrenmek isteyene paylasirim. harika bir ornek. kavrarsan cok iyi bicimde cozersin problemi.

http://inetjava.sourceforge.net/lectures/part1_sockets/InetJava-1.9-Chat-Client-Server-Example.html


Bu mesaja 1 cevap geldi.
V
13 yıl (1065 mesaj)
Yüzbaşı
Konu Sahibi

Yardımcı olmaya çalıştığınız için teşekkür ederim. İlgili örneği paylaşayım belki birilerine yararı olur :

İstemci Kodları :

package edu.erciyes.javaProgramming.istemciSunucu; 

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
public class Istemci extends JFrame { // pencere olacagi icin extends JFrame
private JTextField metinAlani = new JTextField(); // pencere de textarea ve metin olacak
private JTextArea textArea = new JTextArea(); // kullanicinin kenaruzunlugunu girmesi icin
private DataInputStream okuyucu; // sunucudan gelen data okumak icin
private DataOutputStream yazici; // sunucuya data gondermek icin

public Istemci(){
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JLabel("lutfen karenin kenar uzunlugunu giriniz"),BorderLayout.WEST);
panel.add(metinAlani,BorderLayout.CENTER);
metinAlani.setHorizontalAlignment(JTextField.RIGHT);

setLayout(new BorderLayout()); // istemci penceresi layout u
add(panel, BorderLayout.NORTH);
add(new JScrollPane(textArea),BorderLayout.CENTER);

metinAlani.addActionListener(new MetinAlaniDinleyici());

try{
Socket istemciSoketi = new Socket("localhost",8000);
okuyucu = new DataInputStream(istemciSoketi.getInputStream()); // okuyucu ve yazici
yazici = new DataOutputStream(istemciSoketi.getOutputStream()); // akimlarini olusturuyoruz

}catch(IOException istisna){
textArea.append(istisna.getMessage()+ '\n');
}
}

private class MetinAlaniDinleyici implements ActionListener{ // bu sinif kullanici deger girecek
public void actionPerformed(ActionEvent e){ // sonra o degeri alip sunucuya gonderecek
try{ //metni double ceviriyoruz // sunucudan gelen alan bilgisini de textarea ya
double kenarUzunlugu = Double.parseDouble(metinAlani.getText().trim()); // ekleyecek
yazici.writeDouble(kenarUzunlugu); //sunucuya gonderme// metnin basindaki ve sonundakini atmak icin trim
double alan = okuyucu.readDouble();
textArea.append("kenar uzunluğu " + kenarUzunlugu);
textArea.append("sunucudan alinan alan " + alan);

}catch(IOException istisna){
System.err.println(istisna);

}


}

}

}




Sunucu Kodları :

package edu.erciyes.javaProgramming.istemciSunucu; 

import javax.swing.*;
import java.awt.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public class Sunucu extends JFrame { //grafik arayuzu olacagi icin JFrame extend ettik
private JTextArea textArea = new JTextArea();

public Sunucu(){ // Sunucu yapicisi
setTitle("Sunucu"); // pencere ozelliklerini atiyoruz
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);

setLayout(new BorderLayout());
add(new JScrollPane(textArea)); // kaydirma cubugu da olsun

try{
//sunucu soketi olusturuyoruz
ServerSocket sunucuSoket = new ServerSocket(8000); // 8000 portundan gelecekleri dinleyecek
textArea.append("Sunucu " + new Date() + "tarihinde basladi" + '\n');
Socket soket = sunucuSoket.accept(); // istemcileri dinliyor sunucu, istemciden istek olana kadar bekler

//veri aktarimi icin akimlari olusturuyoruz
DataInputStream okuyucu = new DataInputStream(soket.getInputStream());
DataOutputStream yazici = new DataOutputStream(soket.getOutputStream());

while(true){ // dongunun surekli calismasi icin
double kenarUzunlugu = okuyucu.readDouble(); // istemciden double bir bilgi geldigini varsaydik
double alan = kenarUzunlugu * kenarUzunlugu;
yazici.writeDouble(alan); // istemciye alan bilgisini gonderiyoruz

// bu bilgileri textArea ya ekliyoruz
textArea.append("istemciden aldigimiz kenar uzunlugu bilgisi " + kenarUzunlugu);
textArea.append("istemciye gönderilen alan bilgisi" + alan);
}

}catch(IOException istisna){
System.err.println(istisna);
}
}




}


Main İstemci :

package edu.erciyes.javaProgramming.istemciSunucu; 

import javax.swing.*;


public class MainIstemci {
public static void main(String[] args){
Istemci istemci = new Istemci(); // pencere olusturup ozelliklerini atiyoruz
istemci.setTitle("İstemci");
istemci.setSize(500,300);
istemci.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
istemci.setVisible(true);
}
}


Main Sunucu :

package edu.erciyes.javaProgramming.istemciSunucu; 


public class MainSunucu {
public static void main(String[] args){
Sunucu sunucu = new Sunucu();

}

}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.