Java网络编程——TCP协议通信

1、TCP通信原理
  TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Scoket对象,从而在通信两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信
  Java对基本TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。
2.TCP发送数据
1、创建客户端的Socket对象(Socket)
  Socket(String host,int port);
2、获取输出流,写数据
  OutputStream getOutputStream();
3、释放资源
  void close();

import java.io.OutputStream;
import java.net.Socket;

public class SendDemo {
    public static void main(String[] args) throws Exception {
        //创建客户端的Socket对象
        //Socket(InetAddress address,int port)
//        Socket s = new Socket(InetAddress.getByName("192.168.199.148"),10086);
        Socket s = new Socket("192.168.199.148",10086); //底层会将地址字符串转换成InetAddress对象

        //获取输出流
        OutputStream os = s.getOutputStream();
        os.write("hellojava".getBytes());

        //释放资源
        s.close();

    }
}

3.TCP接收数据
1、创建服务器端的Socket对象(ServerScoket)
  ServerSocket(int port);
2、监听客户端连接,返回一个Socket对象
  Socket accept();
2、获取输入流,读数据,并把数据显示在控制台
  InputStream getInputStream();
3、释放资源
  void close();

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo {
    public static void main(String[] args) throws IOException {
        //创建服务器端的Socket对象
        ServerSocket ss = new ServerSocket(10086);

        //监听客户端连接 并返回Socket对象
        Socket s = ss.accept();

        //获取输入流
        InputStream is = s.getInputStream();

        byte[] bys = new byte[1024];

        //返回读取到的数据的长度
        int len = is.read(bys);

        String data  = new String(bys,0,len);

        System.out.println(data);

        //释放资源
        ss.close();

    }
}

你可能感兴趣的:(Java,网络,java,tcp/ip)