服务端和客户端相互对话,说bye时停止,但只能说一句回复一句
客户端
package com.TCP;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class TalkClients {
public static void main(String[] args) {
try {
//通过ip 端口号与服务端建立连接
Socket socket = new Socket("127.0.0.1",88);
//监听控制台输入
BufferedReader sin = new BufferedReader(
new InputStreamReader(System.in));
//监听服务端输出
PrintWriter os = new PrintWriter(
socket.getOutputStream());
//输出服务端内容
BufferedReader is = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String str;
str=sin.readLine();
//输入bye时停止对话
while(!str.equals("bye")){
os.println(str);
os.flush();
//System.out.println("客户端说:"+str);
System.out.println("服务器说:"+is.readLine());
str=sin.readLine();
}
os.close();
is.close();
//关闭端口
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务端
package com.TCP;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TalkServers {
public static void main(String[] args) {
try {
//服务端创建一个监听端口
ServerSocket ss = new ServerSocket(88);
Socket socket = ss.accept();
//监听端口输入流,即获得通过端口传送过来的信息
BufferedReader is = new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
//获得端口输出流,用于输出信息
PrintWriter os = new PrintWriter(
socket.getOutputStream());
//获得控制台信息
BufferedReader sin = new BufferedReader(
new InputStreamReader(
System.in));
System.out.println("客户端说:"+is.readLine());
String line=sin.readLine();
//控制台输入bye 关闭
while(!line.equals("bye")){
os.println(line);
os.flush();
//System.out.println("服务器说:"+line);
System.out.println("客户端说:"+is.readLine());//读取客户端的内容
line=sin.readLine();
}
os.close();
is.close();
socket.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("程序监听异常");
System.exit(-1);
}
}
}