基于TCP通信的简单客户端与服务端小demo(一)

本篇文章旨在复习一下java网络编程的TCP协议的使用,通过构造一个简易的客户端和服务器端来实现信息的传输

一.服务端的实现过程(读取客户端发送的信息,并给客户端回写请求):

  1. 利用ServerSocket创建一个服务端对象serversocket,并申请指定的端口号
  2. 使用serversocket对象中的accept()方法来获取请求客户端的对象socket
  3. 调用socket对象的getInputStream()来获取网络字节输入流的InputStream对象
  4. 调用inputStream对象的read()方法来获取请求客户端发送的信息
  5. 调用outputStream对象的write()方法来回写数据
  6. 释放资源
public class TcpServer {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(8888);
        Socket socket=serverSocket.accept();
        InputStream inputStream=socket.getInputStream();
        byte []bytes=new byte[1024];
        int len=inputStream.read(bytes);
        System.out.println("收到的信息是:"+new String(bytes,0,len));
        OutputStream outputStream=socket.getOutputStream();
        outputStream.write("收到信息,谢谢".getBytes());
        socket.close();
        serverSocket.close();
    }
}

二.客户端的实现过程(给服务端发送信息,并接受服务端的返回信息) 

  1. 利用Socket来创建服务端对象,并绑定服务器的ip地址和端口号
  2. 利用Socket对象中的方法getOutStream()来获取网络字节输出流OutputStream对象
  3. 使用outputStream中的write方法,给服务器发送数据
  4. 使用Socket对象中的方法getInputStream获取网络输入流InputStream
  5. 使用InputStream对象中的read方法,读取服务器的回写数据
  6. 释放资源
public class TcpClient {

    public static void main(String[] args) throws IOException {
        Socket socket=new Socket(InetAddress.getLocalHost(),8888);
        OutputStream outputStream=socket.getOutputStream();
        outputStream.write("你好服务器".getBytes());
        InputStream inputStream=socket.getInputStream();
        byte []bytes=new byte[2014];
        int len=inputStream.read(bytes);
        System.out.println("收到的信息为:"+new String(bytes,0,len));
        socket.close();
    }
}

此为复习网络编程的第一部分笔记,若有错误,请指正,万分感谢!

猜你喜欢

转载自blog.csdn.net/lovekjl/article/details/107783013