1. Trang chủ
  2. » Cao đẳng - Đại học

welcome to nguyenhuuthe sites

7 19 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 584,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- OutputStream getOutputStream() throws IOException: lấy về luồng xuất để máy khách (máy chủ) có thể ghi dữ liệu gửi đến máy chủ (máy khách).. - Ví dụ gửi chuỗi qua mạng, gửi số qua m[r]

Trang 1

LẬP TRÌNH HỆ THỐNG MẠNG

TCP SOCKET

Nội dung chính:

- InputStream getInputStream() throws IOException: lấy về luồng nhập để máy khách (máy

chủ) có thể đọc dữ liệu trả về từ máy chủ (máy khách)

- OutputStream getOutputStream() throws IOException: lấy về luồng xuất để máy khách (máy

chủ) có thể ghi dữ liệu gửi đến máy chủ (máy khách)

- Ví dụ gửi chuỗi qua mạng, gửi số qua mạng

Bài tập 1: Viết chương trình từ Client nhập một chuỗi “thường” bất kỳ và gửi yêu cầu đến Server

xử lý và trả về kết quả chuỗi “HOA”

Class TCPServerUpperCase.java

package network.unit2;

import java.io.*;

import java.net.*;

class TCPServerUpperCase {

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

int port = 9999;

System.out.println("Server khoi dong tai cong " + port);

ServerSocket server = new ServerSocket(port);

Socket client = server.accept();

Thread.sleep(3000);

System.out.println("Ket noi may khach thanh cong");

//br: bộ đệm nhận dữ liệu gửi đến từ client

BufferedReader br = new BufferedReader(new InputStreamReader(

client.getInputStream()));

//pw: gọi các phương thức gửi dữ liệu qua mạng của class PrintWriter

PrintWriter pw = new PrintWriter(client.getOutputStream());

String st = br.readLine();

String kq = processData(st);

System.out.println("Server dang xu ly ");

Thread.sleep(3000);

pw.write(kq + "\n"); //lệnh gửi dữ liệu đi

pw.flush();

System.out.println("Xong");

pw.close();

br.close();

client.close();

server.close();

}

Trang 2

Class TCPClientUpperCase.java

package network.unit2;

import java.io.*;

import java.net.*;

class TCPClientUpperCase {

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

int port = 9999;

String serverName = "localhost"; Socket server = new Socket(serverName, port);

System.out.println("Client dang ket noi den server");

Thread.sleep(5000);

//in: bộ đệm nhập liệu từ bàn phím

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

//br: bộ đệm nhận dữ liệu trả về từ server

BufferedReader br = new BufferedReader(new

InputStreamReader(server.getInputStream()));

//pw: gọi các phương thức gửi dữ liệu qua mạng của class PrintWriter

PrintWriter pw = new PrintWriter(server.getOutputStream());

System.out.print("Nhap mot chuoi : ");

String st = in.readLine();

pw.write(st + "\n");

pw.flush();

System.out.println("Client dang gui cho Server dang xu ly ");

Thread.sleep(5000);

String kq = br.readLine(); //nhận dữ liệu từ server gửi đến client

System.out.println("Chuoi ket qua: " + kq);

pw.close();

br.close();

server.close();

}

}

Trang 3

Kết quả thực thi có dạng:

Client

Nếu thực thi với eclipse thì phải chuyển đổi qua lại giữa 2 cửa số eclipse để xem kết quả Sercer:

Trang 4

Client

Bài tập 2: Nhập một chuỗi số từ Client, chuyển sang Server tính lũy thừa 2, trả kết quả về Client

TCPServerPower.java

package network.unit2;

import java.io.*;

import java.net.*;

class TCPServerPower {

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

int port = 9999;

System.out.println("Server khoi dong tai cong " + port);

ServerSocket server = new ServerSocket(port);

Socket client = server.accept();

Thread.sleep(1000);

System.out.println("Ket noi may khach thanh cong");

//br: bộ đệm nhận dữ liệu gửi đến từ client

BufferedReader br = new BufferedReader(new InputStreamReader(

client.getInputStream()));

//pw: gọi các phương thức gửi dữ liệu qua mạng của class PrintWriter

PrintWriter pw = new PrintWriter(client.getOutputStream());

String st = br.readLine();

int num = Integer.parseInt(st);

long kq = processData(num);

System.out.println("Server dang xu ly ");

Thread.sleep(1000);

String strKq = String.valueOf(kq); //chuyển số thành chuỗi để gửi

pw.write(strKq + "\n"); //lệnh gửi dữ liệu đi

pw.flush();

System.out.println("Xong");

pw.close();

br.close();

client.close();

server.close();

}

public static long processData(int num){

return num * num; //Lũy thừa 2

}

}

Trang 5

package network.unit2;

import java.io.*;

import java.net.*;

class TCPClientPower {

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

int port = 9999;

String serverName = "localhost"; Socket server = new Socket(serverName, port);

System.out.println("Client dang ket noi den server");

Thread.sleep(2000);

//in: bộ đệm nhập liệu từ bàn phím BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

//br: bộ đệm nhận dữ liệu trả về từ server BufferedReader br = new BufferedReader(new

InputStreamReader(server.getInputStream()));

//pw: gọi các phương thức gửi dữ liệu qua mạng của class PrintWriter PrintWriter pw = new PrintWriter(server.getOutputStream());

System.out.print("Nhap mot so : ");

String st = in.readLine();

pw.write(st + "\n");

pw.flush();

System.out.println("Client dang gui cho Server dang xu ly ");

Thread.sleep(2000);

String kq = br.readLine(); //nhận dữ liệu từ server gửi đến client System.out.println("Ket qua: " + kq);

pw.close();

br.close();

server.close();

}

}

Bài tập 3: Viết chương trình tính tổng từ 1 đến N, với N được nhập từ Client Server nhận yêu cầu

từ Client xử lý và trả kết quả về Client.

TCPServerSum.java

package network.unit2;

import java.io.*;

import java.net.*;

class TCPServerSum {

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

int port = 9999;

System.out.println("Server khoi dong tai cong " + port);

ServerSocket server = new ServerSocket(port);

Socket client = server.accept();

//br: bộ đệm nhận dữ liệu gửi đến từ client

BufferedReader br = new BufferedReader(new InputStreamReader(

client.getInputStream()));

Trang 6

int num = Integer.parseInt(st);

int kq = processData(num);

String strKq = String.valueOf(kq); //chuyển số thành chuỗi để gửi

pw.write(strKq + "\n"); //lệnh gửi dữ liệu đi

pw.flush();

pw.close();

br.close();

client.close();

server.close();

}

public static int processData(int num){

int t = 0;

for (int i = 1; i <= num; i++) {

t += i;

}

return t;

}

}

TCPClientSum.java

package network.unit2;

import java.io.*;

import java.net.*;

class TCPClientSum {

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

int port = 9999;

String serverName = "localhost"; Socket server = new Socket(serverName, port);

//in: bộ đệm nhập liệu từ bàn phím

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

//br: bộ đệm nhận dữ liệu trả về từ server

BufferedReader br = new BufferedReader(new

InputStreamReader(server.getInputStream()));

//pw: gọi các phương thức gửi dữ liệu qua mạng của class PrintWriter

PrintWriter pw = new PrintWriter(server.getOutputStream());

System.out.print("Nhap mot so : ");

String st = in.readLine();

pw.write(st + "\n");

pw.flush();

String kq = br.readLine(); //nhận dữ liệu từ server gửi đến client

System.out.println("Ket qua: " + kq);

pw.close();

br.close();

server.close();

}

}

Trang 7

BÀI TẬP MỞ RỘNG

4 Viết chương trình tính tích từ 1 đến N, với N được nhập từ Client Server nhận yêu cầu từ Client xử lý và trả kết quả về Client

5 Viết chương trình đếm số lượng số lẻ từ 1 đến N, với N được nhập từ Client Server nhận yêu cầu từ Client xử lý và trả kết quả về Client

6 Viết chương trình đếm số lượng số nguyên tố từ 1 đến N, với N được nhập từ Client Server nhận yêu cầu từ Client xử lý và trả kết quả về Client

7 Viết chương trình đếm số ký tự khoảng trắng có trong chuỗi nhập từ Client Server nhận yêu cầu từ Client xử lý và trả kết quả về Client

8 Viết chương trình chuyển ký tự đầu của mỗi từ sang chữ in hoa Chuỗi nhập từ Client Server nhận yêu cầu từ Client xử lý và trả kết quả về Client

9 Viết chương trình chuyển ký tự đầu của mỗi từ sang chữ in hoa Chuỗi nhập từ Client Server nhận yêu cầu từ Client xử lý và trả kết quả về Client

Ngày đăng: 21/01/2021, 14:58

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w