* 服务端的代码
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args)throws IOException {
//1:创建一个ServerSocket对象
ServerSocket serverSocket=new ServerSocket(8888);
//2:调用accept()方法来接受客户端的请求
Socket socket=serverSocket.accept();
System.out.println(socket.getInetAddress().getHostAddress()+"has connected");
//3:获取socket对象的输入输出流
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
// BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);
String line=null;
//读取客户端传过来的数据
while ((line=br.readLine())!=null) {
if (line.equals("over")) {
break;
}
System.out.println(line.toUpperCase());//输出客户端写入的数据
/*bw.write(line.toUpperCase());//把转写成大写的字符串传送给客户端
bw.newLine();//换行
bw.flush();//强制刷新缓冲区
*/
pw.println(line);
}
pw.close();
// bw.close();
br.close();
socket.close();
System.out.println(socket.getInetAddress().getHostAddress()+"has disconnected");
}
}
/*
* 客户端
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class TCPClient {
public static void main(String[] args) throws IOException{
Socket socket=new Socket("127.0.0.1", 8888);
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
/*BufferedWriter bw=new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));*/
BufferedReader reader=new BufferedReader
(new InputStreamReader(socket.getInputStream()));
PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);
while (true) {
String line=br.readLine();//获取键盘所输入的字符串
/*bw.write(line);
bw.newLine();//用来生成一个回车符换行
//使用PrintWriter代替这三行
bw.flush();*/
pw.println(line);
if (line.equals("over")) {
break;
}
System.out.println(reader.readLine());//获取服务端传来的大写字符串
}
reader.close();
br.close();
pw.close();
// bw.close();
socket.close();
}
}