socket通信は簡単に実現できます.

7407 ワード

今日は暇で用事がなくて、socket通信を書いて、通信の方面はやはりとても面白いと感じて、しかしAndroidはすべて第三者のフレームワークで取って代わったので、今日1つのdemoを書いて、面白い友达は拡張することができて、2台のコンピュータを実現してチャットするのは大丈夫です.
サービス側
package com.cyanbird.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;


public class Service {
//      ,      。      ,      。
    public static void main(String[] args) {
        openService();
    }

    public static void openService() {
        try {
            ServerSocket serverSocket = new ServerSocket(8585, 10);
            //         socket,accept     
            System.out.println("       ,    ");
            Socket socket = serverSocket.accept();
            System.out.println("------");
            InputStream inputStream = socket.getInputStream();
            InputStreamReader iReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(iReader);
            String temp = null;
            String info = "";
            while ((temp = bufferedReader.readLine()) != null) {
                info += temp;
            }
            System.out.println("        :" + info + "------"
                    + socket.getInetAddress() + "------" + socket.getPort());

            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.print("      ");
            pw.flush();
            socket.shutdownOutput();

            pw.close();
            os.close();
            bufferedReader.close();
            inputStream.close();
            socket.close();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {

        }
    }

}

クライアント
package com.cyanbird.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {
    public static void main(String[] args) {
        openClient();

    }

    public static void openClient() {
        try {
            Socket socket = new Socket("192.168.31.216", 8585);

            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.print("      ");
            pw.flush();
            socket.shutdownOutput();

            InputStream is = socket.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String temp = null;
            String info = "";
            while ((temp = br.readLine()) != null) {
                info += temp;
            }
            System.out.println("        :" + info);

            br.close();
            isr.close();
            is.close();
            pw.close();
            os.close();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {

        }
    }

}

簡単に実現しただけで、コードパッケージはあまりよくなく、個人的な感覚機能が拡張できるのがもっと面白いです.