| 
 
| Socket和ServerSocket 建立客户端和服务器端建立连接后,通过Socket的IO流进行数据传输关闭SOCKET
 复制代码import java.io.*;
import java.net.*;
/**
 *1.TCP分客户端和服务端
 *2.客户端对应对象Socket.服务端对应的对象ServerSocket 
 *
 */
/*
 *客户端,该对象建立时,就去连接指定主机。因为tcp是面向连接的。
 *所以在建立Socket时,就要有服务端存在,并连接成功,形成通路后,
 *在该通道进行数据传输。
 */
public class TCPClient {
    public static void main(String[] args) throws Exception {
        //创建客户端socket服务,指定目的主机和端口
        Socket s=new Socket("127.0.0.1",10003);
        //为了发送数据,获取socket流中的输出流
        OutputStream out =s.getOutputStream();
        out.write("tcp come".getBytes());
        s.close();
    }
}
复制代码import java.io.*;
import java.net.*;
/**
 * 服务端
 * 1.建立服务端Socket服务,serverSocket(),监听一个端口
 * 2.获取连接过来的客户端对象,通过ServerSocket的accept对象,所以这个方法是阻塞式的
 * 没有连接会等待
 * 3.客户端如果发过来数据,服务端要使用对应的客户端对象,并获取该客户端对象的读取流读取
 * 发过来的数据,并打印在控制台
 * 4.关闭服务端(可选)
 */
public class TCPServer {
    public static void main(String[] args) throws Exception {
        //建立服务端的socket服务,监听一个端口
        ServerSocket ss=new ServerSocket(10003);
        //通过accept获取连接过来的客户端对象
        Socket s=ss.accept();
        String ip=s.getInetAddress().getHostAddress();
        System.out.println("ip:"+ip);
        //获取客户端发送来的数据,使用客户端对象的读取流来读取数据
        InputStream in=s.getInputStream();
        byte[] buf=new byte[1024];
        int len=in.read(buf);
        System.out.println(new String(buf,0,len));
        //关闭客户端
        s.close();
        //关闭服务端
        ss.close();
    }
}
 
 
 | 
 |