服务端的创建
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class TwoWaySocketServer {
public static void main(String[] args) {
ServerSocket serverSocket=null;
Socket socket =null;
BufferedReader br=null;
Scanner scanner =null;
PrintWriter pw =null;
try{
serverSocket =new ServerSocket(8888);
System.out.println("服务端启动!监听窗口8888。。。。");
socket =serverSocket.accept();
//创建从客户端读取消息的对象
br =new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 创建键盘输入对象
scanner =new Scanner (System.in);
//创建向客户端发送消息的输出流对象
pw =new PrintWriter(socket.getOutputStream());
while(true){
//读取客户端发送的信息
String str =br.readLine();
System.out.println("客户端说:"+str);
String keyinput =scanner.nextLine();
//发送到客户端
pw. println(keyinput);
pw.flush();
}
}catch(Exception e){
e.printStackTrace();
}finally{
if (serverSocket!=null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null);
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if ( pw!=null){
pw.close();
}
}
}
客户端的创建
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class TwoWaySocketClient {
public static void main(String[] args) {
Socket socket =null;
Scanner scanner =null;
PrintWriter pw=null;
BufferedReader br =null;
try{
socket =new Socket("127.0.0.1",8888);
//键盘输入对象
scanner =new Scanner(System.in);
//创建向服务端发送消息的流对象
pw =new PrintWriter(socket.getOutputStream());
//创建读取服务端发送消息的流对象
br =new BufferedReader( new InputStreamReader(socket.getInputStream()));
while(true){
String keyInput =scanner.nextLine();
pw.println(keyInput);
pw.flush();
String input =br.readLine();
System.out.println("服务端说"+input);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(socket!=null);
{
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(pw!=null);{
pw.close();
}
if(br!=null);{
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (scanner != null) {
scanner.close();
}
}
}
}
小可爱们要记着使用时一定要先运行服务端代码