Tải bản đầy đủ (.docx) (3 trang)

Các bước cài đặt chương trình phía Client bằng Java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (64.45 KB, 3 trang )

Các bước cài đặt chương trình phía Client bằng Java
Sau khi đã tìm hiểu các lớp và các phương thức cần thiết để cài đặt chương trình
Socket. Ở mục 6 và mục 7 chúng ta sẽ đi vào các bước cụ thể để cài đặt các chương trình
Client và Server.
Các bước để cài đặt Client
• Bước 1:Tạo một đối tượng Socket
Socket client =new Socket(“hostname”,portName);
• Bước 2:Tạo một luồng xuất để có thể sử dụng để gửi thông tin tới Socket
PrintWriter out=new PrintWriter(client.getOutputStream(),true);
• Bước 3:Tạo một luồng nhập để đọc thông tin đáp ứng từ server
BufferedReader in=new BufferedReader(new
InputStreamReader(client.getInputStream()));
• Bước 4:Thực hiện các thao tác vào/ra với các luồng nhập và luồng xuất
Đối với các luồng xuất, PrintWriter, ta sử dụng các phương thức print và println, tương tự
như System.out.println.
Đối với luồng nhập, BufferedReader, ta có thể sử dụng phương thức read() để đọc một ký
tự, hoặc một mảng các ký tự, hoặc gọi phương thức readLine() để đọc vào một dòng ký tự.
Cần chú ý rằng phương thức readLine() trả về null nếu kết thúc luồng.
• Bước 5: Đóng socket khi hoàn thành quá trình truyền tin
Ví dụ: Viết chương trình client liên kết với một server. Người sử dụng nhập vào một dòng ký
tự từ bàn phím và gửi dữ liệu cho server.
import java.net.*;
import java.io.*;
public class EchoClient1
{
public static void main(String[] args)
{
String hostname="localhost";
if(args.length>0)
{
hostname=args[0];


}
PrintWriter pw=null;
BufferedReader br=null;
try{
Socket s=new Socket(hostname,2007);
br=new BufferedReader(new
InputStreamReader(s.getInputStream()));
BufferedReader user=new BufferedReader(new
InputStreamReader(System.in));
pw=new PrintWriter(s.getOutputStream());
System.out.println("Da ket noi duoc voi server...");
while(true)
{
String st=user.readLine();
if(st.equals("exit"))
{
break;
}
pw.println(st);
pw.flush();
System.out.println(br.readLine());
}
}
catch(IOException e)
{
System.err.println(e);
}
finally{
try{
if(br!=null)br.close();

if(pw!=null)pw.close();
}
catch(IOException e)
{
System.err.println(e);
}
}
}
}
Chương trình EchoClient đọc vào hostname từ đối dòng lệnh. Tiếp theo ta tạo một
socket với hostname đã xác định trên cổng số 2007. Tất nhiên cổng này hoàn toàn do ta lựa
chọn sao cho nó không trùng với cổng đã có dịch vụ hoạt động. Việc tạo socket thành công
có nghĩa là ta đã liên kết được với server. Ta nhận luồng nhập từ socket thông qua phương
thức getInputStream() và gắn kết nó với các luồng ký tự và luồng đệm nhờ lệnh:
br=new BufferedReader(new InputStreamReader(s.getInputStream());
Tương tự ta lấy về luồng xuất thông qua phương thức getOuputStream() của socket.
Sau đó gắn kết luồng này với luồng PrintWriter để gửi dữ liệu tới server
pw=new PrintWriter(s.getOutputStream());
Để đọc dữ liệu từ bàn phím ta gắn bàn phím với các luồng nhập nhờ câu lệnh:
BufferedReader user=new BufferedReader(new InputStreamReader(System.in));
Sau đi đã tạo được các luồng thì vấn đề nhận và gửi dữ liệu trở thành vấn đề đơn
giản là đọc dữ liệu từ các luồng nhập br, user và ghi dữ liệu lên luồng xuất pw.

×