Professional Documents
Culture Documents
GDBG
GDBG
import java.io.DataOutputStream;
import java.net.*;
import java.util.Date;
public class TimeServer {
public static void main(String[] args) throws Exception
{
ServerSocket server = new ServerSocket(7000);
System.out.println("Server is started");
Socket socket = server.accept();
while(true) {
String time = new Date().toString();
dos.writeUTF("Server tra lai ngay gio="+time);
}
socket.close();
}
}
b. Client
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
}
}
2. Thay đổi chương trình ở bài 1 sao cho cứ mỗi giây chương trình Server trả về cho
client thời gian mới. Chương trình Server có khả năng phục vụ nhiều client (chương trình
Multi-threading).
3. Từ chương trình trên tạo một đồng hồ điện tử phía client và cho phép người dùng chọn
thành phố. Thời gian cập nhật được gửi về từ Server sau mỗi giây (chương trình Multi-
threading).
4. Chạy chương trình sau:
a. Server
import java.io.*;
import java.util.*;
import java.net.*;
/*Chuong trinh chat don gian
Server nhan message tu Client
*/
public class SimpleChatServer {
public static void main(String[] args) throws Exception
{
ServerSocket server = new ServerSocket(7000);
System.out.println("Server is started");
while(true) {
//nhan du lieu tu client
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();
}
}
b. Client
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import java.util.*;
while(true) {
System.out.print("Client: ");
String msg=kb.nextLine();
dos.writeUTF("Client: "+msg);
dos.flush();
kb = kb.reset();
}
5. Dựa vào bài 4, viết chương trình client cho phép người dùng nhập vào 2 số thực và
một phép toán (+, -, *, /) rồi gửi đến chương trình Server. Chương trình Server thực hiện
tính toán kết quả dựa vào phép toán tương ứng và trả kết quả cho chương trình Client. Mỗi
lần tính toán được, server đều lưu kết quả xuống CSDL.
6. Viết chương trình chat cho phép các client gửi dữ liệu nhập từ bàn phím qua lại. (Sử
dụng Multi-threading).
7. Phát triển bài 6, chương trình server có kết nối CSDL để quản lý accounts người dùng.
Thực hành UDP Socket
import java.io.*;
import java.net.*;
import java.util.*;
class UDPTimeServer
{
public static void main(String args[]) throws Exception
{
//Gan cong 9876 cho chuong trinh
DatagramSocket serverSocket = new DatagramSocket(9876);
//Tao cac mang byte de chua dl gui va nhan
System.out.println("Server is started");
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
//Tao goi rong de nhan du lieu tu client
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
//Nhan dl tu client
serverSocket.receive(receivePacket);
//Lay dia chi IP cua may client
InetAddress IPAddress = receivePacket.getAddress();
//Lay port cua chuong trinh client
int port = receivePacket.getPort();
//Lay ngay gio de gui nguoc lai client
String request = new String(receivePacket.getData());
System.out.println(request);
if(request.trim().equals("getDate"))
sendData = new Date().toString().getBytes();
else sendData = "Server not know what you want?".getBytes();
b. Client
import java.io.*;
import java.net.*;
class UDPTimeClient
{
public static void main(String args[]) throws Exception
{
DatagramSocket clientSocket = new DatagramSocket();//gan cong
dong
//tao datagram co noi dung yeu cau loai dl de gui cho server
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
9876);
clientSocket.receive(receivePacket);//nhan dl tu server
2. Thay đổi chương trình ở bài 1 sao cho cứ mỗi giây chương trình Server trả về cho
client thời gian mới
3. Thay đổi chương trình ở bài 1, cho phép người dùng nhập vào loại yêu cầu (Day,
Month, Year, Hour, Minute, Second), dựa vào loại yêu cầu Server trả về cho client thời
gian mới
4. Từ chương trình trên tạo một đồng hồ điện tử phía client. Thời gian cập nhật được gửi
về từ Server sau mỗi giây.
5. Nâng cấp bài 4 cho phép người dùng chọn thành phố (New York, Hanoi, Tokyo, Paris,
Jakarta, Seoul).
6. Dựa vào bài 4 trong bài thực hành TCP, viết chương trình client cho phép người dùng
nhập vào 2 số thực và một phép toán (+, -, *, /) rồi gửi đến chương trình Server.
Chương trình Server thực hiện tính toán kết quả dựa vào phép toán tương ứng và trả
kết quả cho chương trình Client.
7. Viết chương trình chat UDP cho phép các client gửi dữ liệu nhập từ bàn phím qua lại.
Chương trình server có kết nối CSDL để quản lý accounts người dùng.
Thực hành URL
1. Chạy chương trình sau sử dụng đối số dòng lệnh để nhập chuổi URL
import java.net.*;
2. Viết chương trình Client-Server. Chương trình client có giao diện cho phép người
dùng chọn tên thành phố trên thế giới rồi gửi cho chương trình server (danh sách các
thành phố được chương trình server gửi về khi client khởi động (server đọc tên thành
phố từ Website The World Clock)). Chương trình server truy cập website về The World
Clock – Time Zone (http://www.timeanddate.com/worldclock/) để lấy thời gian rồi trả
về cho client hiển thị lên màn hình.
3. Viết chương trình Client-Server. Chương trình client có giao diện cho phép người
dùng chọn tên thành phố trên thế giới rồi gửi cho chương trình server (danh sách các
thành phố được chương trình server gửi về khi client khởi động (server đọc tên thành
phố từ Website Weather around the World)). Chương trình server truy cập website về
The Weather around the World (http://www.timeanddate.com/weather/) để lấy thông
tin dự báo thời tiết rồi trả về cho client hiển thị lên màn hình.
4. Viết chương trình Client-Server. Chương trình client hiển thị thông tin (news) tổng
hợp gửi về từ server. Chương trình server truy cập website (do người dùng cấu hình)
đọc thông tin gửi về cho client.