網絡編程01

實現TCP程序,須要編寫服務器端和客戶端,java  API爲咱們提供了java.net包 ,爲網絡應用程序提供類。java

ServerSocket 此類實現服務器套接字服務器

Socket:此類實現客戶端套接字網絡

TCP程序最簡單的例子:Echosocket

(服務器端)EchoServerDemo.java.net

package ScoketDemo;server

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;get

public class EchoServerDemo {io

    public static void main(String[] args) {
        //建立一個服務器端口的Scoket(1024-65535)
        try {
            ServerSocket server = new ServerSocket(6666);
            //等待客戶端鏈接,形成阻塞
            System.out.println("服務器已啓動,正在等待客戶端鏈接");
            Socket socket = server.accept();
            System.out.println("服務器鏈接成功"+server.getInetAddress().getHostAddress());
            //經過輸入流讀取客戶端發送的消息
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(socket.getInputStream()));
            String info = br.readLine();
            System.out.println(info);
            
            //獲取輸出流,向客戶端返回原來讀取的消息
            PrintStream ps = new PrintStream(
                    new BufferedOutputStream(socket.getOutputStream()));
            ps.println("echo:"+info);
            ps.flush();
            ps.close();
            br.close();
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }class

}
 import

(客戶端)EchoClientDemo.java

package ScoketDemo;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class EchoClientDemo {

    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost",6666);
            //獲取socket的輸入輸出流
            PrintStream ps = new PrintStream(new BufferedOutputStream(socket.getOutputStream()));
            BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream()));
            
            //經過輸出流向服務器發送 hello,my name is dashabi 
            ps.println("hello,my name is dashabi");
            ps.flush();
            
            //經過輸入流讀取服務器發來的消息
            String info = br.readLine();
            System.out.println(info);
            ps.close();
            br.close();
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}  

相關文章
相關標籤/搜索