TCP通信程序

 

TCP通信原理
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象, 从而在通信的两端形成网络虚拟链路,
一旦建立 了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。


Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信
Java为客户端提供了Socket谈,为服务器端提供了ServerSocket类

 

TCP发送数据


TCP发送数据的步骤
①创建客户端的Socket对象(Socket)
  Socket(String hqst, int port)
②获取输出流,写数据
  OutputStream getOutputStream0
③释放资源
  void close(

public class Socket
extends Object
implements Closeable
该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通讯的端点。
package com.ThreadTest;
/*
    TCP发送数据的步骤
        1:创建客户端的Socket对象(Socket)
        2:获取输出流,写数据
        3:释放资源

 */

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


public class ClientDemo {
    public static void main(String[] args) throws IOException {
//        1:创建客户端的Socket对象(Socket)
//        Socket​(InetAddress address, int port) 创建流套接字并将其连接到指定IP地址的指定端口号。
//    Socket s = new Socket(InetAddress.getByName("192.168.1806"),10000);
//        Socket​(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号。
        Socket s = new Socket("192.168.18.6", 10000);

        //获取输出流,写数据
//        Socket类下面的方法 public OutputStream getOutputStream​() throws IOException返回此套接字的输出流。
        OutputStream os = s.getOutputStream();
        os.write("我来了,hello,TCP".getBytes());

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

TCP接收数据

ServerSocket​(int port)
创建绑定到指定端口的服务器套接字。

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

package com.ThreadTest;
/*
TCP接收数据的步骤

        1:创建服务器端的Socket对象(ServerSocket)
        2:获取输入流,读数据,并把数据显示在控制台
        3:释放资源

 */

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 {
//        1:创建服务器端的Socket对象(ServerSocket)
//        ServerSocket​(int port) 创建绑定到指定端口的服务器套接字。
        ServerSocket ss = new ServerSocket(10000);

//        2 accept​() 侦听要连接到此套接字并接受它。
        Socket s = ss.accept();
//        3:获取输入流,读数据,并把数据显示在控制台
        InputStream is = s.getInputStream();
        byte[] bys = new byte[1024];
        int len;
        while ((len = is.read(bys)) != -1) {
            System.out.println("数据是:" + new String(bys, 0, len));
        }
        //4 释放资源
        ss.close();


    }
}

 

posted @ 2019-08-31 18:10  水果、、  阅读(407)  评论(0编辑  收藏  举报