Tải bản đầy đủ - 0 (trang)
1 BÀI THỰC HÀNH BUỔI 1

1 BÀI THỰC HÀNH BUỔI 1

Tải bản đầy đủ - 0trang

Báo cáo thực hành lập trình mạng



2014



public class Database {

public static void main(String arg[]) {

Object header[];

Object data[][];

int rows, i, j;

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con = DriverManager.getConnection("jdbc:odbc:testDB");

Statement stmt = (java.sql.Statement) con.createStatement();

String sql = "Select * from SinhVien";

ResultSet rs = ((java.sql.Statement) stmt).executeQuery(sql);

ResultSetMetaData rsmd = rs.getMetaData();

int numberOfColumns = rsmd.getColumnCount();

header = new Object[numberOfColumns];

for (j = 1; j <= numberOfColumns; j++) {

header[j - 1] = rsmd.getColumnLabel(j);

}

rows = 0;

while (rs.next())

rows++;

data = new Object[rows][numberOfColumns];

i = 0;

rs = ((java.sql.Statement) stmt).executeQuery(sql);

while (rs.next()) {

for (j = 1; j <= numberOfColumns; j++) {

data[i][j - 1] = rs.getObject(j);

i++;

}

rs.close();

stmt.close();

JFrame frame = new JFrame("Hiển thị cơ sở dữ liệu");

JTable tb = new JTable(data, header);

tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

JScrollPane jsp = new JScrollPane(tb);

frame.add(jsp);

frame.setVisible(true);

frame.setSize(300, 300);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}



Page 2



}



1.1.1.4 Demo

Dữ liệu trong Access



Dữ liệu xuất ra bảng:



1.1.2 Bài tập 2

1.1.2.1 Đề bài:

Dùng Java xây dựng giao diện của chương trình scan IP.



1.1.2.2 Cài đặt:

import java.awt.*;

import javax.swing.*;

public class ScanIP extends JFrame {

JTextField myIP, IP1_1, IP1_2, IP1_3, IP1_4, IP2_1, IP2_2, IP2_3, IP2_4;

JTextArea result;

JScrollPane jsp;

JButton scanbt, cancelbt, exitbt;

JRadioButton jrb1, jrb2, jrb3;

ButtonGroup bg;

JPanel pn, pn1, pn2, pn3, pn4, pn5;

public ScanIP(String a) {

super(a);

myIP = new JTextField("192.168.1.3");

myIP.setPreferredSize(new Dimension(200, 25));

myIP.setEditable(false);

pn1 = new JPanel(new FlowLayout(FlowLayout.CENTER));

pn1.setPreferredSize(new Dimension(550, 35));

pn1.add(new JLabel("Địa chỉ IP của máy: "));

pn1.add(myIP);

IP1_1 = new JTextField();

IP1_1.setPreferredSize(new Dimension(35, 25));

IP1_2 = new JTextField();

IP1_2.setPreferredSize(new Dimension(35, 25));



Họ và tên: Bùi Tấn Việt – Lớp: 10T2 – Nhóm 11BPage 3



Báo cáo thực hành lập trình mạng



IP1_3 = new JTextField();

IP1_3.setPreferredSize(new Dimension(35, 25));

IP1_4 = new JTextField();

IP1_4.setPreferredSize(new Dimension(35, 25));

IP2_1 = new JTextField();

IP2_1.setPreferredSize(new Dimension(35, 25));

IP2_2 = new JTextField();

IP2_2.setPreferredSize(new Dimension(35, 25));

IP2_3 = new JTextField();

IP2_3.setPreferredSize(new Dimension(35, 25));

IP2_4 = new JTextField();

IP2_4.setPreferredSize(new Dimension(35, 25));

pn2 = new JPanel(new FlowLayout(FlowLayout.CENTER));

pn2.setPreferredSize(new Dimension(550, 40));

pn2.add(new JLabel("Từ địa chỉ: "));

pn2.add(IP1_1);

pn2.add(new JLabel(":"));

pn2.add(IP1_2);

pn2.add(new JLabel(":"));

pn2.add(IP1_3);

pn2.add(new JLabel(":"));

pn2.add(IP1_4);

pn2.add(new JLabel(" Đến địa chỉ: "));

pn2.add(IP2_1);

pn2.add(new JLabel(":"));

pn2.add(IP2_2);

pn2.add(new JLabel(":"));

pn2.add(IP2_3);

pn2.add(new JLabel(":"));

pn2.add(IP2_4);

jrb1 = new JRadioButton("Sử dụng 16 thread", true);

jrb1.setPreferredSize(new Dimension(150, 35));

jrb2 = new JRadioButton("Sử dụng 32 thread");

jrb2.setPreferredSize(new Dimension(150, 35));

jrb3 = new JRadioButton("Sử dụng 64 thread");

jrb3.setPreferredSize(new Dimension(150, 35));

bg = new ButtonGroup();

bg.add(jrb1);

bg.add(jrb2);

bg.add(jrb3);

pn3 = new JPanel(new FlowLayout(FlowLayout.CENTER));

pn3.setPreferredSize(new Dimension(550, 35));

pn3.add(jrb1);

pn3.add(jrb2);

pn3.add(jrb3);

result = new JTextArea();

result.setPreferredSize(new Dimension(500, 120));

result.setEditable(false);

jsp = new JScrollPane(result,

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,

JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

pn4 = new JPanel(new FlowLayout(FlowLayout.CENTER));

pn4.setPreferredSize(new Dimension(520, 170));

pn4.add(new JLabel("Trình hiển thị kết quả scan:"));

pn4.add(jsp);

scanbt = new JButton("Scan");

scanbt.setPreferredSize(new Dimension(100, 30));

cancelbt = new JButton("Cancel");

cancelbt.setPreferredSize(new Dimension(100, 30));

exitbt = new JButton("Exit");

exitbt.setPreferredSize(new Dimension(100, 30));



Page 4



2014



pn5 = new JPanel(new FlowLayout(FlowLayout.CENTER));

pn5.setPreferredSize(new Dimension(520, 170));

pn5.add(scanbt);

pn5.add(cancelbt);

pn5.add(exitbt);

pn = new JPanel(new FlowLayout(FlowLayout.CENTER));

pn.add(pn1);

pn.add(pn2);

pn.add(new JLabel("Lựa chọn số thread để thực hiện cơng việc"));

pn.add(pn3);

pn.add(pn4);

pn.add(pn5);

add(pn);

setTitle("Chương trình scan ip mạng lan");

setSize(550, 400);

setResizable(false);

setLocationRelativeTo(null);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setVisible(true);

}

public static void main(String arg[]) {

ScanIP tmp = new ScanIP("Scan ip");



}



}



1.1.2.3 Demo:



Họ và tên: Bùi Tấn Việt – Lớp: 10T2 – Nhóm 11BPage 5



Báo cáo thực hành lập trình mạng



2014



1.2 BÀI THỰC HÀNH BUỔI 2

1.2.1 Đề bài:

Sửa lại chương trình có sẵn để Client có thể gửi 1 biểu thức cho sẵn với các toán tử “+, -, *, /,

sin, cos, tan, cot” lên cho Server xử lý và Server trả về kết quả cho Client.



1.2.2 Phần chương trình Client:

1.2.2.1 Thuật toán:

B1: Tạo giao diện GUI và socket để kết nối đến Server có địa chỉ IP và cổng cho trước.

B2: Tạo dòng vào ra dữ liệu vào ra gắn vào socket.

B3: Lấy chuỗi biểu thức nhập vào.

B4: Gửi cả chuỗi biểu thức qua Server và chờ kết quả nhận về.

B5: Hiển thị kết quả nhận về.



1.2.2.2 Cài đặt:

import

import

import

import



java.io.*;

java.net.*;

java.awt.*;

java.awt.event.*;



public class client implements ActionListener {

public static Panel pn1, pn2, pn3, pn;

public static TextField tfnhap = new TextField(5);

public static TextField tfkq = new TextField();

public static Label lbnhap = new Label();

public static Label lbkq = new Label();

public static Button bt1, bt2;

public static String s = "";

Socket socket;

DataOutputStream outputStream;

DataInputStream inputStream;

public client() throws UnknownHostException, IOException {

JFrame fr = new JFrame("Client");

fr.setSize(400, 200);

fr.setLayout(new GridLayout());

lbnhap.setText("Nhap vao chuoi can tinh toan");

lbkq.setText("Ket qua");

pn = new Panel(new GridLayout(5, 1));

pn1 = new Panel(new GridBagLayout());

bt1 = new Button("send");

bt2 = new Button("Exit");

pn.add(lbnhap);

pn.add(tfnhap);

pn.add(lbkq);

pn.add(tfkq);

pn1.add(bt1);

pn1.add(bt2);

pn.add(pn1);

fr.add(pn);

bt1.addActionListener(this);

bt2.addActionListener(this);

fr.show();



}



Page 6



socket = new Socket("127.0.0.1", 7777);

outputStream = new DataOutputStream(socket.getOutputStream());

inputStream = new DataInputStream(socket.getInputStream());



@Override

public void actionPerformed(ActionEvent e) {

double nhan;

if (e.getSource() == bt1) {

try {

String s = tfnhap.getText();

outputStream.writeUTF(s);

nhan = inputStream.readDouble();

tfkq.setText("" + nhan);

} catch (UnknownHostException e1) {

} catch (IOException e1) {}

}

if (e.getSource() == bt2)

System.exit(0);

}



}



1.2.3 Phần chương trình Server:

1.2.3.1 Thuật tốn:

B1: Tạo ServerSocket kết nối với cổng cho sẵn.

B2: Server lắng nghe liên tục để chờ các client kết nối tới.

B2.1: Khi có Client kết nối tới thì Server sẽ tạo socket để giao tiếp, đồng thời tạo 1 đối tượng sử

dụng thread để xử lý yêu cầu.



1.2.3.2 Cài đặt:

import java.net.*;

public class server {

public static void main(String[] args) throws Exception {

ServerSocket serverSocket = new ServerSocket(7777);

while (true) {

Socket socket = serverSocket.accept();

server_Process t = new server_Process(socket);

t.start();

}

}

}



1.2.4 Phần chương trình xử lý của Server:

1.2.4.1 Thuật tốn:

B1: Tạo dòng vào ra kết nối với socket.

B2: Chờ liên tục để nhận dữ liệu từ Client:

B2.1: Khi nhận được dữ liệu từ Client thì sẽ tiến hành xử lý tính tốn lấy kết quả.

B2.2: Truyền kết quả cho Client.



1.2.4.2 Cài đặt:



Họ và tên: Bùi Tấn Việt – Lớp: 10T2 – Nhóm 11BPage 7



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

1 BÀI THỰC HÀNH BUỔI 1

Tải bản đầy đủ ngay(0 tr)

×