java實現Socket編程實例代碼

ew45 9年前發布 | 2K 次閱讀 Java

服務器端

/**

  • @author GUXIA */ import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket;

public class ChatServer { public static void main(String[] args) { try { //創建服務器端套接字,接受來自客戶端的連接請求 ServerSocket ss=new ServerSocket(9999); Socket s=ss.accept();

        //獲取客戶端套接字的輸出流
        OutputStream os=s.getOutputStream();
        DataOutputStream dos=new DataOutputStream(os);

        //獲取客戶端輸入流
        InputStream is=s.getInputStream();
        DataInputStream dis=new DataInputStream(is);

        //創建字符輸入流接受鍵盤輸入
        InputStreamReader isr=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(isr);

        String message;
        while(true){
            //獲取客戶端輸入流,并打印在屏幕上,如果客戶端說的是“再見”,退出
            message=dis.readUTF();
            System.out.println("客戶端:"+message);
            if(message.equals("再見"))
                break;
            //讀取鍵盤輸入并寫入到輸出流(客戶端的輸入流)
            message=br.readLine();
            dos.writeUTF(message);

        }
        dis.close();
        dos.close();
        ss.close();
        s.close();

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
}

}</pre>
客戶端:

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;

public class ChatClient { public static void main(String[] args) { try { //創建客戶端套接字 Socket sc=new Socket("localhost",9999); //獲取套接字輸入流 InputStream is=sc.getInputStream(); DataInputStream dis=new DataInputStream(is); //獲取套接字輸出流 OutputStream os=sc.getOutputStream();

        DataOutputStream dos=new DataOutputStream(os);

        //創建字符輸入流接受鍵盤輸入
        InputStreamReader isr=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(isr);

        //聊天
        String message;
        while(true){
            //讀取鍵盤輸入的字符,寫到客戶端輸出流
            message=br.readLine();
            dos.writeUTF(message);
            if(message.equals("再見"))
                break;
            //讀取服務器端的數據并打印到屏幕上
            message=dis.readUTF();
            System.out.println("服務器:"+message);
        }
        dis.close();
        dos.close();
        sc.close();

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }

}

}</pre>

 本文由用戶 ew45 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!