Professional Documents
Culture Documents
Bước 1 : Khai báo các thông số kết nối cho Server (Server.Java)
ServerSocket server=new ServerSocket(8080); //có thể thay đổi số cổng 8080 thành cổng khác
Socket client=server.accept();
Bước 4 : Bắt đầu tiến hành làm việc theo yêu cầu của đề bài
http://dontruongbt.spaces.live.com/ -1-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
Bước 1 : Khai báo các thông số kết nối cho Server (Server.Java)
int port = 2812; //có thể thay đổi bằng cổng khác
DatagramSocket socket = new DatagramSocket(port);
Bước 3: Bắt đầu tiến hành làm việc theo yêu cầu của đề bài
http://dontruongbt.spaces.live.com/ -2-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
A, hàm chuẩn hoá chuỗi, kết quả trả về là 1 chuỗi sau khi đã chuẩn hoá :
public String ChuanHoa(String st)
{
st=st.trim();
while (st.indexOf(" ")>=0)
{
st=st.replaceAll(" "," ");
}
st = st.toLowerCase();
String[] ARR=st.split(" ");
for (int i = 0; i < ARR.length; i++)
ARR[i]=ARR[i].substring(0, 1).toUpperCase().concat(ARR[i].substring(1));
st="";
for (int i = 0; i < ARR.length-1; i++)
st=st.concat(ARR[i])+" ";
st=st.concat(ARR[ARR.length-1]);
return st;
}
http://dontruongbt.spaces.live.com/ -3-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
return temp.reverse().toString();
}
E, Đếm số lần xuất hiện của các ký tự trong chuỗi (có phân biệt hoa thường) :
http://dontruongbt.spaces.live.com/ -4-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
F, Đếm số lần xuất hiện các ký tự, không phân biệt chữ hoa thường :
public void DemSoLanXuatHienKyTu1(String st)
{
char kt;
int dem;
String temp = st.toUpperCase();
System.out.println("So n xuat hien cac ky tu trong chuoi : ");
for (kt='A';kt<='Z' ;kt++ )
{
dem = 0;
for (int i=0;i<st.length();i++)
if (kt==temp.charAt(i))
dem++;
if (dem!=0)
System.out.println("\tKy tu " + kt + " xuat hien " + dem + " lan");
}
}
http://dontruongbt.spaces.live.com/ -5-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
}
Đếm số lần xuất hiện của 1 ký tự trong chuỗi :
public int DemKT(String st)
{
int dem = 0;
char kt='A'; //ký tự muốn đếm
for (int i=0;i<st.length();i++)
if (kt==st.charAt(i))
dem++;
return dem;
}
http://dontruongbt.spaces.live.com/ -6-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
N, Biến chữ cái đầu sau dấu cách thành chữ hoa :
public String ChuHoaDau(String st)
{
if (st.charAt(0)!=' ')
{
st = st.substring(0,1).toUpperCase().concat(st.substring(1));
}
for (int i=0;i<st.length() ;i++ )
if (st.charAt(i)==' ')
{
int vt = i+1;
String st1 = st.substring(0,vt);
String st2 = st.substring(vt,vt+1).toUpperCase();
String st3 = st.substring(vt+1);
st = st1.concat(st2.concat(st3));
}
return st;
}
http://dontruongbt.spaces.live.com/ -7-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
MayKhach.java
import java.io.*;
import java.net.*;
import java.util.*;
class MayKhach
{
public static void main(String[] args) throws Exception
{
//Nhận lại chuỗi được gửi trả về từ Máy Chủ và in lên màn hình
st=br.readLine();
System.out.println("Chuoi nhan duoc tu Server : " + st);
http://dontruongbt.spaces.live.com/ -8-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
MayChu.java
import java.io.*;
import java.net.*;
import java.util.*;
class MayChu
{
public static void main(String[] args) throws Exception
{
ServerSocket server=new ServerSocket(8080);//cổng trùng với cổng ở Client
System.out.println("Server chờ kết nối ở cổng 8080....");
Socket client=server.accept();
System.out.println("Kết Nối Thành Công.");
//Tiến hành thay thế chuỗi, hàm thay thế được viết bên dưới
st=ThayThe(st);
//Gửi trả lại chuỗi sau khi đã thay thế về cho Máy Khách
pw.write(st);
pw.write("\n");
pw.flush();
http://dontruongbt.spaces.live.com/ -9-
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
Hãy viết một ứng dụng Client/Server, sử dụng socket, theo yêu cầu sau :
- Chương trình Client :
o Cho phép người dùng nhập vào một chuỗi ký tự
o Gửi chuỗi ký tự nhận được đến Server
o Nhận dữ liệu trả về từ Server và in ra màn hình
o Kết thúc chương trình.
- Chương trình Server :
o Nhận kết nối từ Client
o Nhận chuỗi ký tự từ Client
o Đếm số lần ký tự A xuất hiện trong chuỗi và gửi kết quả về cho Client
Kết thúc chương trình.
MayKhach.java
import java.io.*;
import java.net.*;
import java.util.*;
class MayKhach
{
public static void main(String[] args) throws Exception
{
Socket server=new Socket("127.0.0.1",8080);//có thể đổi IP hoặc Port
System.out.println("Client kết nối đến cổng 8080 của Server...");
PrintWriter pw=new PrintWriter(server.getOutputStream());
BufferedReader br=new BufferedReader(new
InputStreamReader(server.getInputStream()));
String st;
//Nhập chuỗi bất kỳ từ bàn phím
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhap chuoi bat ky : ");
st = in.readLine();
//Gửi chuỗi đã nhập từ bàn phím đến Máy Chủ
pw.write(st);
pw.write("\n");
pw.flush();
//Nhận lại chuỗi được gửi trả về từ Máy Chủ và in lên màn hình
int dem =Integer.parseInt(br.readLine());
if (dem!=0)
System.out.println("Ký tự 'A' xuất hiện " + dem + " lần.");
else
System.out.println("Ký tự 'A' không xuất hiện trong chuỗi.");
//Kết thúc chương trình
pw.close();
br.close();
server.close();
}
}
http://dontruongbt.spaces.live.com/ - 10 -
Tài Liệu Ôn Thi Lập Trình Mạng Mobile : 0989995221
MayChu.java
import java.io.*;
import java.net.*;
import java.util.*;
class MayChu
{
public static void main(String[] args) throws Exception
{
ServerSocket server=new ServerSocket(8080);//cổng trùng với cổng ở Client
System.out.println("Server chờ kết nối ở cổng 8080....");
Socket client=server.accept();
System.out.println("Kết Nối Thành Công.");
//Tiến hành thay thế chuỗi, hàm thay thế được viết bên dưới
int dem = DemKT(st);
//Gửi trả lại chuỗi sau khi đã thay thế về cho Máy Khách
pw.write(String.valueOf(dem));
pw.write(st);
pw.write("\n");
pw.flush();
http://dontruongbt.spaces.live.com/ - 11 -