一、打开server端
package day35_net_网络编程.tcp传输; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /* * 使用TCP协议接收数据 创建接收端Socket对象 监听(阻塞) 获取输入流对象 获取数据 输出数据 释放资源 ServerSocket:接收端,服务端Socket ServerSocket(int port) Socket accept() */ public class ServerDemo { public static void main(String[] args) throws IOException { //创建接收端Socket对象。ServerSocket(int port) 创建绑定到特定端口的服务器套接字。 ServerSocket ss = new ServerSocket(8888); //监听(阻塞)。Socket accept() 侦听并接受到此套接字的连接。 使用socket去读写数据。 Socket s = ss.accept(); //获取输入流对象 InputStream is = s.getInputStream(); //获取数据 byte[] bts = new byte[1024]; int len;//存储读取到的字节数组个数 len = is.read(bts);//参看io流copy数组 String str = new String(bts,0,len); //输出数据 System.out.println(s.getInetAddress().getHostName() + "---" + str); //释放资源 s.close(); // ss.close();//服务端一般不会关闭。等待客户端的信号 } }
二、client端发送数据
package day35_net_网络编程.tcp传输; import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /* * 使用TCP协议发送数据 创建发送端Socket对象(创建连接) 获取输出流对象 发送数据 释放资源 Socket(InetAddress address, int port) Exception in thread "main" java.net.ConnectException: Connection refused: connect */ public class ClientDemo { public static void main(String[] args) throws IOException { //创建clink端socket对象。Socket(InetAddress address, int port) 创建一个流套接字指定目的端ip、端口。 Socket s = new Socket(InetAddress.getByName("MININT-79LU01A"),8888);//使用本地主机名 //获取输出流对象 OutputStream os = s.getOutputStream(); //发送数据 os.write("hello,tcp 9999".getBytes()); //释放资源 // os.close();//对象流可以不释放由socket去释放 s.close(); } }
三、输出