Sie sind auf Seite 1von 18

GVHD : TS.

Hunh Cng Php H v Tn : Nguyn Ngc Sang Lp : 08T2 Nhm : 5


Bi 1 : Class Bai1Server :
package bai1; import java.io.DataOutputStream; import java.net.*; import java.util.Date; public class Bai1Server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); while (true) { Socket socket = server.accept(); DataOutputStream dos = new DataOutputStream( socket.getOutputStream()); String time = new Date().toString(); dos.writeUTF("Server tra lai ngay gio=" + time); socket.close(); } } }

Class Bai1Client :
package bai1; import java.io.DataInputStream; import java.net.Socket; public class Bai1Client { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", 7000); DataInputStream din = new DataInputStream(socket.getInputStream()); String time = din.readUTF(); System.out.println(time); socket.close(); } }

Demo :

Bi 2 : Class Bai2Server :
package bai2; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; public class Bai2Server { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); while (true) { Socket socket = server.accept(); (new Bai2ServiceThread(socket)).start(); } } } class Bai2ServiceThread extends Thread { Socket socket; public Bai2ServiceThread(Socket socket) { this.socket = socket; } @Override public void run() { DataOutputStream dos = null; try { dos = new DataOutputStream(socket.getOutputStream()); while (true) { String time = new Date().toString(); dos.writeUTF("Server tra lai ngay gio=" + time); Thread.sleep(1000); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

Class Bai2Client :
package bai2; import java.io.DataInputStream; import java.net.Socket; public class Bai2Client { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", 7000); DataInputStream din = new DataInputStream(socket.getInputStream()); while (true) { String time = din.readUTF(); System.out.println(time); Thread.sleep(1000); } } }

Demo :

Bi 3 : Class Bai3Server :
package bai3; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone; public class Bai3Server { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); while (true) { Socket socket = server.accept(); (new ServiceThread(socket)).start(); } } } class ServiceThread extends Thread { Socket socket;

public ServiceThread(Socket socket) { this.socket = socket; } @Override public void run() { DataOutputStream dos = null; DataInputStream dis = null; try { dos = new DataOutputStream(socket.getOutputStream()); dis = new DataInputStream(socket.getInputStream()); String stimezone = TimeZone.getDefault().getID(); Calendar cal = new GregorianCalendar( TimeZone.getTimeZone(stimezone)); while (true) { int hour12 = cal.get(Calendar.HOUR); // 0..11 int minutes = cal.get(Calendar.MINUTE); // 0..59 int seconds = cal.get(Calendar.SECOND); // 0..59 boolean am = cal.get(Calendar.AM_PM) == Calendar.AM; minutes + ":" + seconds; String time = (am ? hour12 : hour12 + 12) + ":" + dos.writeUTF(time); Thread.sleep(1000); String oldtimezone = dis.readUTF(); if(oldtimezone.equalsIgnoreCase("skip")) cal = new GregorianCalendar(

TimeZone.getTimeZone(stimezone)); else { cal = new GregorianCalendar( TimeZone.getTimeZone(oldtimezone)); stimezone = oldtimezone; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }

} }

Class Bai3Client :
package bai3; import java.awt.BorderLayout; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket;

import java.util.HashMap; import java.util.Map; import java.util.TimeZone; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class Bai3Client { static JLabel label = new JLabel("time"); static Map<String, String> map = new HashMap<String, String>(); static JList list; public static void main(String[] args) throws Exception { DefaultListModel listmodel = new DefaultListModel(); String[] timezone = TimeZone.getAvailableIDs(); for (String s : timezone) { TimeZone tz = TimeZone.getTimeZone(s); if (!map.containsKey(tz.getDisplayName())) { map.put(tz.getDisplayName(), s); listmodel.addElement(tz.getDisplayName()); } } JFrame frame = new JFrame(); frame.setTitle("Bai3Client"); frame.setSize(300, 300); list = new JList(listmodel); JScrollPane scroll = new JScrollPane(list); frame.add(scroll); frame.add(label, BorderLayout.SOUTH); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Socket socket = new Socket("localhost", 7000); list.addListSelectionListener(new TimezoneSelection(socket, map)); DataInputStream din = new DataInputStream(socket.getInputStream()); DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); while (true) { String time = din.readUTF(); System.out.println(time); label.setText(time); dos.writeUTF("skip"); } } static class TimezoneSelection implements ListSelectionListener { Socket socket; Map<String, String> map; public TimezoneSelection(Socket socket, Map<String, String> map)

this.socket = socket; this.map = map;

@Override public void valueChanged(ListSelectionEvent e) { // TODO Auto-generated method stub String s = (String) list.getSelectedValue(); try { DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); dos.writeUTF(map.get(s)); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }

Demo

Bi 4 : Class Bai4Server :
package bai4; import java.io.*; import java.util.*; import java.net.*; public class Bai4Server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); Socket socket = server.accept();

DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); DataInputStream din = new DataInputStream(socket.getInputStream()); Scanner kb = new Scanner(System.in); while (true) { String st = din.readUTF(); System.out.println(st); System.out.print("Server: "); String msg = kb.nextLine(); dos.writeUTF("Server: " + msg); dos.flush(); kb = kb.reset(); } // socket.close();

} }

Class Bai4Client :
package bai4; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.Socket; import java.util.*; public class Bai4Client { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", 7000); DataInputStream din = new DataInputStream(socket.getInputStream()); DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); Scanner kb = new Scanner(System.in); while (true) { System.out.print("Client: "); String msg = kb.nextLine(); dos.writeUTF("Client: " + msg); dos.flush(); String st = din.readUTF(); System.out.println(st); } } kb = kb.reset();

Demo :

Bi 5 : Class Bai5Server :
package bai5; import java.io.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.net.*; public class Bai5Server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); while (true) { Socket socket = server.accept(); DataOutputStream dos = new DataOutputStream( socket.getOutputStream()); DataInputStream dis = new DataInputStream(socket.getInputStream()); String expression = dis.readUTF(); System.out.println(expression); double a = Double.parseDouble(expression.substring(0, expression.indexOf(" "))); double b = Double.parseDouble(expression.substring( expression.lastIndexOf(" "), expression.length())); char operator = expression.substring(expression.indexOf(" ") + 1, expression.indexOf(" ") + 2).charAt(0); double result = 0.0; switch (operator) { case '+': result = a + b; break; case '-': result = a - b; break; case '*': result = a * b; break; case '/': if (b != 0) result = a / b; } System.out.println(a + " " + operator + " " + b);

} }

connectDB(expression, result); dos.writeDouble(result); dos.flush(); dos.close(); dis.close(); socket.close();

public static void connectDB(String expression, double result) { Connection conn = null; Statement statement = null; try { conn = DriverManager.getConnection("jdbc:odbc:Calc"); statement = conn.createStatement(); String sqlQuery = "insert into Calc values (\'" + expression + "\', " + result + ")"; System.out.println(sqlQuery); statement.executeUpdate(sqlQuery); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (conn != null) conn.close(); if(statement != null) statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

Class Bai5Client :
package bai5; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Bai5Client { public static void main(String[] args) throws UnknownHostException, IOException { Socket socket = new Socket("localhost", 7000); Scanner s = new Scanner(System.in); double a = s.nextDouble(); double b = s.nextDouble(); char operator = s.next().charAt(0); DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); String expression = a + " " + operator + " " + b;

System.out.println(expression); dos.writeUTF(expression); DataInputStream dis = new DataInputStream(socket.getInputStream()); double result = dis.readDouble(); System.out.println("Result is : " + result); dos.close(); dis.close(); } }

Bi 6 : Class Bai6Server :
package bai6; import java.io.*; import java.util.*; import java.net.*; public class Bai6Server { static ArrayList<Socket> asocket = new ArrayList<Socket>(); public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); while (true) { Socket socket = server.accept(); asocket.add(socket); (new Bai6ServiceThread(asocket, socket)).start(); } // socket.close(); } }

class Bai6ServiceThread extends Thread { ArrayList<Socket> asocket; Socket socket; public Bai6ServiceThread(ArrayList<Socket> asocket, Socket socket) { this.asocket = asocket; this.socket = socket; } @Override public void run() { DataOutputStream dos = null; DataInputStream dis = null; try {

DataOutputStream(

dos = new DataOutputStream(socket.getOutputStream()); dis = new DataInputStream(socket.getInputStream()); while (true) { String s = dis.readUTF(); System.out.println(s); for (int i = 0; i < asocket.size(); ++i) { Socket tempSocket = asocket.get(i); DataOutputStream tempDos = new tempSocket.getOutputStream()); tempDos.writeUTF(s); }

} } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (dos != null) dos.close(); if (dis != null) dis.close(); } catch (IOException e) { e.printStackTrace(); } } } }

Class Bai6Client:
package bai6; import java.awt.BorderLayout; 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; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class Bai6Client { static JTextField inputmsg; static JTextArea outputmsg; static String username; public static void setUsername(String usernameArg) { username = usernameArg; } public static void main(String[] args) throws Exception {

JFrame frame = new JFrame("Simple Chat room"); frame.setSize(400, 400); frame.setVisible(true); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); JButton btnOk = new JButton("Send"); panel.add(btnOk, BorderLayout.EAST); inputmsg = new JTextField(); panel.add(inputmsg); frame.add(panel, BorderLayout.SOUTH); outputmsg = new JTextArea(); outputmsg.setEditable(false); frame.add(outputmsg); (new Bai6InputDlg(frame)).setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Socket socket = new Socket("localhost", 7000); btnOk.addActionListener(new SendMsgBtnClick(socket)); while(true) { DataInputStream dis = new DataInputStream(socket.getInputStream()); String s = dis.readUTF(); System.out.println("ok"); s += "\n"; outputmsg.append(s); } } static class SendMsgBtnClick implements ActionListener { Socket socket; public SendMsgBtnClick(Socket socket) { this.socket = socket; } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { DataOutputStream dos = new DataOutputStream( socket.getOutputStream()); String s = username + " sent : " + inputmsg.getText(); dos.writeUTF(s); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }

Class Bai6InputDlg :

package bai6; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JTextField; public class Bai6InputDlg extends JDialog{ private static final long serialVersionUID = 1L; public Bai6InputDlg(JFrame frame) { super(frame, "Input User Dialog", true); setSize(300, 150); setLayout(new FlowLayout()); final JTextField tfusername = new JTextField(20); add(tfusername); JButton btnOk = new JButton("Ok"); btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub Bai6Client.setUsername(tfusername.getText()); setVisible(false); } }); add(btnOk); } }

Demo :

Bi 7 :

Class Bai7Server :
package bai7; import java.io.*; import java.util.*; import java.net.*; public class Bai7Server { static ArrayList<Socket> asocket = new ArrayList<Socket>(); public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(7000); System.out.println("Server is started"); while (true) { Socket socket = server.accept(); asocket.add(socket); (new Bai6ServiceThread(asocket, socket)).start(); } // socket.close();

} }

class Bai6ServiceThread extends Thread { ArrayList<Socket> asocket; Socket socket; public Bai6ServiceThread(ArrayList<Socket> asocket, Socket socket) { this.asocket = asocket; this.socket = socket; } @Override public void run() { DataOutputStream dos = null; DataInputStream dis = null; try { dos = new DataOutputStream(socket.getOutputStream()); dis = new DataInputStream(socket.getInputStream()); while (true) { String s = dis.readUTF(); System.out.println(s); for (int i = 0; i < asocket.size(); ++i) { Socket tempSocket = asocket.get(i); DataOutputStream tempDos = new DataOutputStream( tempSocket.getOutputStream()); tempDos.writeUTF(s); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (dos != null)

dos.close(); if (dis != null) dis.close(); } catch (IOException e) { e.printStackTrace(); } } } }

Class Bai7Client :
package bai7; import java.awt.BorderLayout; 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; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class Bai7Client { static JTextField inputmsg; static JTextArea outputmsg; static String username; public static void setUsername(String usernameArg) { connectDB(usernameArg); } public static void connectDB(String username) { Connection conn = null; Statement statement = null; try { conn = DriverManager.getConnection("jdbc:odbc:Calc"); statement = conn.createStatement(); String sqlQuery = "insert into Account values (\'" + username System.out.println(sqlQuery); statement.executeUpdate(sqlQuery); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (conn != null) conn.close();

+ "\')";

} }

if(statement != null) statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }

public static void main(String[] args) throws Exception { JFrame frame = new JFrame("Simple Chat room"); frame.setSize(400, 400); frame.setVisible(true); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); JButton btnOk = new JButton("Send"); panel.add(btnOk, BorderLayout.EAST); inputmsg = new JTextField(); panel.add(inputmsg); frame.add(panel, BorderLayout.SOUTH); outputmsg = new JTextArea(); outputmsg.setEditable(false); frame.add(outputmsg); (new Bai7InputDlg(frame)).setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Socket socket = new Socket("localhost", 7000); btnOk.addActionListener(new SendMsgBtnClick(socket)); while(true) { DataInputStream dis = new DataInputStream(socket.getInputStream()); String s = dis.readUTF(); System.out.println("ok"); s += "\n"; outputmsg.append(s); } } static class SendMsgBtnClick implements ActionListener { Socket socket; public SendMsgBtnClick(Socket socket) { this.socket = socket; } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { DataOutputStream dos = new DataOutputStream( socket.getOutputStream()); String s = username + " sent : " + inputmsg.getText();

dos.writeUTF(s); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }

Class Bai7InputDlg :
package bai7; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JTextField; public class Bai7InputDlg extends JDialog{ private static final long serialVersionUID = 1L; public Bai7InputDlg(JFrame frame) { super(frame, "Input User Dialog", true); setSize(300, 150); setLayout(new FlowLayout()); final JTextField tfusername = new JTextField(20); add(tfusername); JButton btnOk = new JButton("Ok"); btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub Bai7Client.setUsername(tfusername.getText()); setVisible(false); }

} }

}); add(btnOk);

Das könnte Ihnen auch gefallen