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

Xem chủ đề cũ hơn Xem chủ đề mới hơn 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){}
    }
}

Admin
Admin

Tổng số bài gửi : 217
Reputation : 20
Join date : 17/11/2012
Age : 24

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);}
    }
}

Admin
Admin

Tổng số bài gửi : 217
Reputation : 20
Join date : 17/11/2012
Age : 24

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

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

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