核心步骤如下:
step1:服务器端指定一个端口号来建立socket连接
ServerSocket serverSocket=new ServerSocket(9999);
step2:(服务器端)一直监听这个端口有没有socket连接过来
Socket socket=serverSocket.accept();
step3:客户端新建一个socket,传入服务端的地址和端口号,连接上服务端的端口
Socket clientSocket=new Socket(serverIp,port);
step4;客户端发送消息,服务器端接收消息
step5:服务器端关闭流和socket
step6:客户端关闭流和socket
step7:先运行服务器端程序,再运行客户端程序
服务器端代码:
public class TcpServer
{
public static void main(String[] args) throws IOException
{
//1:服务端指定一个端口号来创建socket
ServerSocket serverSocket=new ServerSocket(9999);
//2.等待客户端连接过来(一直在监听),这个socket和客户端建立连接的socket是同一个socket
Socket socket=serverSocket.accept();
//6.读取客户端的消息
InputStream inputStream=socket.getInputStream();
ByteArrayOutputStream pipe=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len;
while((len=inputStream.read(buffer))!=-1)
{
pipe.write(buffer,0,len);
}
System.out.println(pipe.toString());
//7.关闭io流
pipe.close();
inputStream.close();
//8.关闭socket
socket.close();
serverSocket.close();
}
}
客户端代码:
public class TcpClient
{
public static void main(String[] args) throws IOException
{
//3.拿到服务器的地址
InetAddress serverIp=InetAddress.getByName("127.0.0.1");
//4.拿到服务器的端口号
int port=9999;
//5.创建1个socket连接(传入ip和端口)
Socket clientSocket=new Socket(serverIp,port);
//6.用io流发送消息
OutputStream outputStream= clientSocket.getOutputStream();
outputStream.write("你好,欧阳水鸣".getBytes());
//9.关闭流和socket
outputStream.close();
clientSocket.close();
}
}