Aplicatie client-server
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main (String args[]) {
Socket socket = null;
BufferedReader bufferedReader = null;
PrintWriter printWriter = null;
try {
socket = new Socket("localhost", 5000);
InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream());
bufferedReader = new BufferedReader(inputStreamReader);
printWriter = new PrintWriter(socket.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
Window window = new Window(bufferedReader, printWriter);
window.setTitle("Project");
window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);
}
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.PrintWriter;
public class Window extends JFrame {
private BufferedReader bufferedReader;
private PrintWriter printWriter;
private JTextField jTextField;
private JButton jButton;
public Window(BufferedReader bufferedReader, PrintWriter printWriter) {
this.bufferedReader = bufferedReader;
this.printWriter = printWriter;
ActionButton actionButton = new ActionButton();
JLabel jLabel = new JLabel("Item:");
jTextField = new JTextField(50);
JPanel jPanelItem = new JPanel();
jPanelItem.add(jLabel);
jPanelItem.add(jTextField);
jButton = new JButton("Search");
jButton.addActionListener(actionButton);
JPanel jPanelButton = new JPanel();
jPanelButton.add(jButton);
JPanel jPanelGeneral = new JPanel();
jPanelGeneral.setLayout(new GridLayout(2 ,1));
jPanelGeneral.add(jPanelItem);
jPanelGeneral.add(jPanelButton);
Container container = this.getContentPane();
container.add(jPanelGeneral, "South");
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
class ActionButton implements ActionListener {
@Override
public void actionPerformed(ActionEvent ev) {
Object object = ev.getSource();
if (object == jButton) {
try {
String output = jTextField.getText();
printWriter.print(output);
printWriter.flush();
String input = bufferedReader.readLine();
if (input.equals(""))
JOptionPane.showMessageDialog(null,
"Zero items with your searched name");
else
JOptionPane.showMessageDialog(null, input);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
import java.util.ArrayList;
public class Item {
public static ArrayList<Item> item;
private String name;
private int number;
private String description;
public void setName(String name) {
this.name = name;
}
public void setNumber(int number) {
this.number = number;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public int getNumber() {
return number;
}
public String getDescription() {
return description;
}
}
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String args[]) {
System.out.println("Server is online!");
try {
ServerSocket serverSocket = new ServerSocket(5000);
for (;;) {
Socket socket = serverSocket.accept();
Thread thread = new Thread(new ServerThread(socket));
thread.start();
System.out.println("We have a connection!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Iterator;
public class ServerThread implements Runnable {
private String input = "";
private String output = "";
private Socket socket;
private BufferedReader bufferedReader;
private PrintWriter printWriter;
public ServerThread(Socket socket) {
try {
this.socket = socket;
InputStreamReader inputStreamReader = new
InputStreamReader(this.socket.getInputStream());
this.bufferedReader = new BufferedReader(inputStreamReader);
this.printWriter = new PrintWriter(this.socket.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
for (;;) {
input = bufferedReader.readLine();
XmlReader.read();
getOutputValue();
printWriter.print(output);
printWriter.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void getOutputValue() {
output = "";
Iterator<Item> iterator = Item.item.iterator();
while (iterator.hasNext()) {
Item currentItem = iterator.next();
if (currentItem.getName().equals(input)) {
output += "There are " + currentItem.getNumber() + " pieces(s) of " + currentItem.getName() +
" with this description: " + currentItem.getDescription();
}
}
}
}
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XmlReader {
public static void read() {
File file = new File("Item.xml");
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder;
try {
documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(file);
document.getDocumentElement().normalize();
NodeList nodeList = document.getElementsByTagName("item");
Item.item = new ArrayList<>();
for (int i = 0; i < nodeList.getLength(); i++) {
Item.item.add(getItem(nodeList.item(i)));
}
} catch (SAXException | ParserConfigurationException | IOException e) {
e.printStackTrace();
}
}
private static Item getItem(Node node) {
Item item = new Item();
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
item.setName(getTagValue("name", element));
item.setNumber(Integer.parseInt(getTagValue("number", element)));
item.setDescription(getTagValue("description", element));
}
return item;
}
private static String getTagValue(String tag, Element element) {
NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = nodeList.item(0);
return node.getNodeValue();
}
}
UNIVERSITATEA PITESTI
FACULTATEA DE ELECTRONICA, COMUNICATII SI CALCULATOARE
Informatica industriala
-Proiect-
Student: Dragnea Ioana Alexandra
Specializarea : SECPI
Anul: I
Aplicatie client-server
Sa se realizeze o aplicatie client-server bazata pe socket-uri.
Serverul va accesa o baza de date (la alegere:fisier text, xml, access sau sql) si va transmite
catre client info cerute.
Baza de date va contine campurile nume produs, tip produs si numar bucati (ex:laptop,dell,45).
Clientul va avea o interfata grafica si va face cereri catre server. Cererea se face prin nume
produs, de ex:
Client:
laptop
Server:
dell
45