JAVA TCP Socket

服务器端

 

package com.Pong.tcpip;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class TcpServer {



    //先启动服务器端程序

    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket=new ServerSocket(8080);

        Socket socket=serverSocket.accept();//阻塞等待消息

        InputStream inputStream=socket.getInputStream();

        OutputStream outputStream=socket.getOutputStream();

//        outputStream.write("欢迎光临!".getBytes(), 0,"欢迎光临!".getBytes().length );

        outputStream.write("welcome!".getBytes() );

    /*    byte[] buf=new byte[1024];

        int len=inputStream.read(buf);

//        System.out.println(new String(buf, 0, len));

        inputStream.close();*/

        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));

        System.out.println(bufferedReader.readLine());

        bufferedReader.close();

        outputStream.close();

        socket.close();

        serverSocket.close();

    }

}
package com.Pong.tcpip;



import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;



public class Servicer implements Runnable {

    Socket socket;



    public Servicer(Socket socket) {

        super();

        this.socket = socket;

    }



    @Override

    public void run() {

    try {

        InputStream inputStream=socket.getInputStream();

        OutputStream outputStream=socket.getOutputStream();

        

        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));

        DataOutputStream dataOutputStream=new DataOutputStream(outputStream);

        while (true) {

            String strWord=bufferedReader.readLine();

//            System.out.println(strWord+":"+strWord.length());

            if ("quit".equalsIgnoreCase(strWord)) {

                break;

            }

            String strEcho=(new StringBuilder(strWord).reverse()).toString();

            //dataOutputStream.writeBytes(strWord+"---->"+strEcho+"\r\n");

            //System.getProperty("line.separator")为跨平台换行符。Window为\r\n,unix为\n

            dataOutputStream.writeBytes(strWord+"---->"+strEcho+System.getProperty("line.separator"));

        }

        bufferedReader.close();

        bufferedReader.close();

        socket.close();

    } catch (IOException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

    }

    



    }

    

    public static void main(String [] args)

    {

        try

        {

            ServerSocket ss=new ServerSocket(8080);

            while(true)

            {

                Socket s=ss.accept();

                new Thread(new Servicer(s)).start();

            }

            //ss.close();

        }catch(Exception e){e.printStackTrace();}

    }



}

客户端

package com.Pong.tcpip;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.Socket;

//后启动客户端程序

public class TcpClient {

    //启动main时传进来两个参数:ip和端口号

    public static void main(String [] args) 

    {

    try

    {

        //Socket s=new Socket(InetAddress.getByName("192.168.0.213"),8001);

        if(args.length < 2)

        {

            System.out.println("Usage:java TcpClient ServerIP ServerPort");

            return;

        }

        //建立Socket

        Socket s=new Socket(InetAddress.getByName(args[0]),Integer.parseInt(args[1]));

        InputStream ips=s.getInputStream();

        OutputStream ops=s.getOutputStream();

        

        BufferedReader brKey = new BufferedReader(new InputStreamReader(System.in));//键盘输入

        DataOutputStream dos = new DataOutputStream(ops);

        BufferedReader brNet = new BufferedReader(new InputStreamReader(ips));



        while(true)

        {

            String strWord = brKey.readLine();

            dos.writeBytes(strWord + System.getProperty("line.separator"));

            if(strWord.equalsIgnoreCase("quit"))

                break;

            else

                System.out.println(brNet.readLine());

        }

        dos.close();

        brNet.close();

        brKey.close();

        s.close();

    }catch(Exception e){e.printStackTrace();}

    }

}

/*发送和接受都是以Socket为信息载体*/

你可能感兴趣的:(socket)