Tổng hợp bài giải THỰC HÀNH

Go down

Tổng hợp bài giải THỰC HÀNH

Bài gửi  Admin on Tue Oct 29, 2013 12:36 pm



Bài 1:
Code:

package LapTrinhMang.buoi1;

import java.io.*;
import java.net.*;
import java.util.Scanner;

/**
 *
 * @author ELCIT.FORUMVI.COM
 */
public class getHTML {
    public static void main(String[] args){
        try{
            System.out.println("Nhap URL:");
            Scanner sc = new Scanner(System.in);
            String url = sc.nextLine();
            
            Socket socket = new Socket(url,80);
            OutputStream os = socket.getOutputStream();
            
            String request = "GET /index.php HTTP/1.1";
            request = request + "\r\n";
            request = request + "Host: " + url;
            request = request + "\r\n";
            request = request + "\r\n";
            
            byte[] b = request.getBytes();
            os.write(b);
            os.flush();
            
            InputStream is = socket.getInputStream();
            while(true){
                int ch = is.read();
                if(ch == -1) break;
                System.out.print((char)ch);
            }
        }
        catch(UnknownHostException u){
            System.out.println(u);
        }
        catch(IOException e){
            System.out.println(e);
        }
    }
}
Bài 2:

Phía Server:
Code:

/*
 * NUMBER SERVER
 */
package LapTrinhMang.buoi1;

import java.io.*;
import java.net.*;

/**
 *
 * @author Dien dan chia se kien thuc: ELCIT.FORUMVI.COM
 */
public class NumberServer {
    public static void main(String[] args){
        try{
           ServerSocket server = new ServerSocket(8192);
           System.out.println("Server san sang phuc vu! Lang nghe tren cong "+server.getLocalPort());
          
          Socket socket = server.accept();
           System.out.println("Ket noi thanh cong! Kenh giao tiep ao o port: "+socket.getPort());
          
          InputStream is = socket.getInputStream();
           BufferedReader br = new BufferedReader(new InputStreamReader(is));
           String request = br.readLine();
          
          String response;
           switch(request){
               case "0":
                   response = "Khong";
                   break;
               case "1":
                   response = "Mot";
                   break;
               case "2":
                   response = "Hai";
                   break;
               case "3":
                   response = "Ba";
                   break;
               case "4":
                   response = "Tu";
                   break;
               case "5":
                   response = "Nam";
                   break;
               case "6":
                   response = "Sau";
                   break;
               case "7":
                   response = "Bay";
                   break;
               case "8":
                   response = "Tam";
                   break;
               case "9":
                   response = "Chin";
                   break;
               default:
                   response = "Khong phai so nguyen";
                   break;
           }
           OutputStream os = socket.getOutputStream();
           PrintWriter pw = new PrintWriter(os);
           pw.write(response+"\r\n");
           pw.flush();
           System.out.println("Gui phan hoi den Client thanh cong!!!");
           socket.close();
        }
        catch(IOException e){
            System.out.println(e);
        }
    }
}
Phía Client:
Code:

/*
 * NUMBER CLIENT
 */
package LapTrinhMang.buoi1;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
 *
 * @author Dien dan chia se kien thuc: ELCIT.FORUMVI.COM
 */
public class NumberClient {
    public static void main(String[] args){
        try{
            Socket socket = new Socket("127.0.0.1",8192);
            OutputStream os = socket.getOutputStream();
            InputStream is = socket.getInputStream();
            
            System.out.print("Nhap vao 1 ky tu: ");
            Scanner sc = new Scanner(System.in);
            String request = sc.nextLine();
            
            while(request.length()>=2){
                System.out.print("Ban chi duoc nhap 1 ky tu, vui long nhap lai: ");
                request = sc.nextLine();
            }
            
            PrintWriter pw = new PrintWriter(os);
            pw.write(request+"\r\n");
            pw.flush();
            System.out.println("Gui request den Server thanh cong!");
            System.out.print("Ket qua tra ve tu Server: ");
            while(true){
                int ch = is.read();
                if (ch == -1) break;
                System.out.print((char)ch);
            }
            socket.close();
        }
        catch(IOException e){
            System.out.println(e);
        }
    }
}
Thêm phần xử lý song song, cách 1: implements Runnable

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package LapTrinhMang.buoi1;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 *
 * @author ASUS
 */
public class NumberServer_implements implements Runnable {
    Socket channel;
    NumberServer_implements(Socket channel){
        this.channel = channel;
    }
    public void run(){
        try{
          InputStream is = channel.getInputStream();
          BufferedReader br = new BufferedReader(new InputStreamReader(is));
          String request = br.readLine();
         
          String response;
          switch(request){
              case "0":
                  response = "Khong";
                  break;
              case "1":
                  response = "Mot";
                  break;
              case "2":
                  response = "Hai";
                  break;
              case "3":
                  response = "Ba";
                  break;
              case "4":
                  response = "Tu";
                  break;
              case "5":
                  response = "Nam";
                  break;
              case "6":
                  response = "Sau";
                  break;
              case "7":
                  response = "Bay";
                  break;
              case "8":
                  response = "Tam";
                  break;
              case "9":
                  response = "Chin";
                  break;
              default:
                  response = "Khong phai so nguyen";
                  break;
          }
          OutputStream os = channel.getOutputStream();
          PrintWriter pw = new PrintWriter(os);
          pw.write(response+"\r\n");
          pw.flush();
          System.out.println("Gui phan hoi den Client thanh cong!!!");
          channel.close();
        }//try
        catch(IOException e){
            System.out.println(e);     
        }//catch
    }
    public static void main(String[] args){
        try{
            ServerSocket server = new ServerSocket(8192);
            System.out.println("Server san sang phuc vu! Lang nghe ket noi tren port: "+server.getLocalPort());
            while(true){
                Socket connection = null;
                connection = server.accept();
                //Phan 2
                NumberServer_implements thread = new NumberServer_implements(connection);
                Thread luong = new Thread(thread);
                luong.start();
            }
        }
        catch(IOException e){}
    }
}
avatar
Admin
Admin

Tổng số bài gửi : 218
Reputation : 23
Join date : 17/11/2012
Age : 26

Xem lý lịch thành viên http://elcit.forumvi.com

Về Đầu Trang Go down

Buổi 2:

Bài gửi  Admin on Tue Oct 29, 2013 10:17 pm

Buổi 2: Socket ở chế độ nối kết (TCP) - tiếp theo

Bài 1:

Phía Client:
Code:
import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
 *
 * @author Nguyen Vu Trinh Nhan MSSV:1101774
 */
public class Bai1Client {
    public static void main(String[] args){
        try{
            Socket socket = new Socket("localhost",8192);
            System.out.println("Ket noi den server tren port: "+socket.getLocalPort());
            
            System.out.print("Nhap ten file can download: ");
            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            Scanner sc = new Scanner(System.in);
            String request = sc.nextLine();
            
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.println("READ "+request);
            pw.flush();
            System.out.println("...da gui yeu cau den server! Cho nhan phan hoi!");
                      
            
            String response = br.readLine();
            System.out.println("Phan hoi tu server: "+response);
            switch (response) {
                case "OK":
                    System.out.println("File ton tai tren server, bat dau qua trinh download...");
                    System.out.print("File:"+request+", saveas with new name:");
                    sc = new Scanner(System.in);
                    String filename = sc.nextLine();
                    FileOutputStream fos = new FileOutputStream(filename);
                    
                    while(true){
                        int ch = br.read();
                        System.out.println((char)ch);
                        if(ch == -1) break;
                        fos.write(ch);                  
                    }
                    System.out.println("Da nhan file xong!!!");
                    break;
                case "ERROR":
                    System.out.println("File khong ton tai tren server!\nDownload that bai!");
                    break;
            }
        }
        catch(Exception e){System.out.println(e);}
    }
}
Phía Server:
Code:

import java.io.*;
import java.net.*;
import java.util.Scanner;

/**
 *
 * @author Nguyen Vu Trinh Nhan MSSV:1101774
 */
public class Bai1Server {
    public static void main(String[] args){
        try{
            ServerSocket serversocket = new ServerSocket(8192);
            System.out.println("Server dang lang nghe tren port "+serversocket.getLocalPort());
            
            Socket socket = serversocket.accept();
            String log1 = "Tao socket ao giao tiep, port:"+socket.getLocalPort();
            OutputStream logfile = new FileOutputStream("logfile.txt");
            byte b[] = log1.getBytes();
            logfile.write(b);
            
            InputStream is = socket.getInputStream();
            Scanner sc = new Scanner(is);
            String request = sc.nextLine();
            String filename = request.substring(request.indexOf(" ")+1);
            System.out.println("Filename yeu cau tu phia client: "+filename);
            
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            try{
                FileInputStream fis = new FileInputStream(filename);
                pw.write("OK\n");
                pw.flush();
                System.out.println("File ton tai,bat dau gui file!");
                while(true){
                    int ch = fis.read();
                    System.out.println((char)ch);
                    if(ch == -1) break;
                    pw.write(ch);
                }
                pw.flush();
                System.out.println("Da gui file xong!");
            }
            catch(FileNotFoundException fnfe){
                System.out.println("File khong ton tai");
                pw.write("ERROR\n");
                pw.flush();
            }
            socket.close();
        }
        catch(Exception e){System.err.println(e);}
    }
}
avatar
Admin
Admin

Tổng số bài gửi : 218
Reputation : 23
Join date : 17/11/2012
Age : 26

Xem lý lịch thành viên http://elcit.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết