/**
* 客户端:发送一条数据,接收服务端反馈的消息,并打印
* 服务器:接收数据并打印,再给客户端发送反馈
*/
public class Client {
public static void main(String[] args) throws IOException {
//1.创建Socket对象,并连接服务器
Socket socket = new Socket("127.0.0.1",10000);
//2.写出数据、
String str = "你好";
OutputStream os = socket.getOutputStream();
os.write(str.getBytes());
//写出一个结束标记
socket.shutdownOutput();
//3.读取数据
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
int b;
while ((b=isr.read())!=-1){
System.out.println((char)b);
}
//释放资源
socket.close();
}
}
public class Server {
public static void main(String[] args) throws IOException {
//1.创建对象并绑定10000端口
ServerSocket ss = new ServerSocket(10000);
//2.等待客户连接
Socket socket = ss.accept();
//3.socket中获取输入流,读取数据
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
int b;
//细节:
/**
* read方法会从连接通道中读取数据
* 但是,需要有一个结束标志,此循环才会停止
* 否则,程序就会一直停在read方法这里,等待读取下面的数据
*/
while((b=isr.read())!=-1){
System.out.println((char)b);
}
//4.会写数据
String str="到底多好?";
OutputStream os = socket.getOutputStream();
os.write(str.getBytes());
//释放资源
socket.close();
ss.close();
}
}