首页 > 代码库 > JAVA TCP Socket

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为信息载体*/

JAVA TCP Socket