//Server.java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
//创建一个服务器端socket,指定绑定的端口号,并监听此端口
InputStream inp;
InputStreamReader isr;
BufferedReader bfr;
Socket socket;
ServerSocket serverSocket;
String info;
// System.out.println("服务器启动,正在等待客户端连接");
while(true) {
try {
//System.out.println("服务器启动,正在等待客户端连接");
serverSocket = new ServerSocket(6666);
while(true) {
socket = serverSocket.accept();
inp = socket.getInputStream();
isr = new InputStreamReader(inp);
bfr = new BufferedReader(isr);
info = null;
if((info = bfr.readLine())!=null && !info.equals(" ")) {
System.out.println("客服端说:"+info);
}
if(info.equals(" ")) {
//socket.shutdownInput();
System.out.println("客服端表示输入完毕...");
break;
}
}
PrintWriter pw;
OutputStream ots;
String i;
Socket socket1;
while(true) {
socket1 = new Socket("localhost",7777);
System.out.println("请输入数据(输入空格+回车结束输入):");
System.out.print(">");
ots = socket1.getOutputStream();
pw = new PrintWriter(ots);
pw.write("");
pw.write(i = new BufferedReader(new InputStreamReader(System.in)).readLine());
pw.flush();
socket1.shutdownOutput();
if(i.equals(" ")) {
System.out.println("输入已结束...等待客户端响应");
pw.close();
ots.close();
bfr.close();
isr.close();
inp.close();
socket1.close();
serverSocket.close();
break;
}
}
}catch(SocketException e) {
// e.printStackTrace();
System.out.println("已结束...");
}
}
}
}
//Client.java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
String i;
// TODO Auto-generated method stub
ServerSocket serverSocket;
Socket socket,socket1;
PrintWriter pw;
BufferedOutputStream bos;
OutputStream ots;
InputStream is;
InputStreamReader isr;
BufferedReader br;
while(true) {
try {
while(true) {
socket = new Socket("localhost",6666);
ots = socket.getOutputStream();
bos = new BufferedOutputStream(ots);
pw = new PrintWriter(bos);
System.out.println("请输入数据(输入空格+回车结束输入):");
System.out.print(">");
pw.write(i = new BufferedReader(new InputStreamReader(System.in)).readLine());
pw.flush();
socket.shutdownOutput();
if(i.equals(" ")) {
System.out.println("输入已结束...等待服务器回复");
//socket.shutdownOutput();
break;
}
}
serverSocket = new ServerSocket(7777);
while(true) {
socket1 = serverSocket.accept();
is = socket1.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
String info = null;
if((info = br.readLine())!=null && !info.equals(" ")) {
System.out.println("服务器说:" + info);
}
if(info.equals(" ")) {
System.out.println("服务器表示输入已结束...");
br.close();
isr.close();
is.close();
pw.close();
ots.close();
bos.close();
socket.close();
socket1.close();
serverSocket.close();
}
}
}catch(SocketException e){
System.out.println("已结束...");
//e.printStackTrace();
}catch(IOException e) {
//e.printStackTrace();
}
}
}
}
先启动服务器,再启动客户端,然后。。。就能交流了