客户端
package d20;
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 ClientNode {
public static void main(String[] args) {
int serverPort = 8081;//服务端端口号
String serverIp = "127.0.0.1";//服务端IP地址
try {
//1首先直接创建socket,端口号1~1023为系统保存,一般设在1023之外
Socket socket = new Socket(serverIp, serverPort);
InputStreamReader reader = new InputStreamReader(System.in);
//2创建 获取键盘输入内容的 字符输入流
BufferedReader systemIn = new BufferedReader(reader);
//3创建 字符输出流,向服务端输出内容
PrintWriter socketOut = new PrintWriter(socket.getOutputStream());
//4创建字符输入流 接收客户端输入的内容
BufferedReader socketIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
//输入流获取键盘输入内容
String readline = systemIn.readLine();
//输出流向服务端发送数据
socketOut.println(readline);
socketOut.flush();
//读取服务端返回的数据
String serverStr = socketIn.readLine();
System.out.println("服务端:" + serverStr);
if(readline.equals("bye")) {
break;
}
}
//关闭资源
systemIn.close();
socketIn.close();
socketOut.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务端
package d20;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
//服务端
public class ServerNode {
public static void main(String[] args) {
int port = 8081;
try {
//1 创建ServerSocket,监听端口8081
ServerSocket serverSocket = new ServerSocket(port);
//2 调用服务器的accept方法,接受来自客户端的连接请求。
//在接收到客户端连接请求之前,此方法会进行阻塞(程序会在这等待),
//当有申请连接时会建立连接并返回一个socket
Socket socket = serverSocket.accept();
InputStreamReader reader = new InputStreamReader(socket.getInputStream());
//4 创建客户端输入流:获取客户端传输的数据
BufferedReader socketIn = new BufferedReader(reader);
BufferedReader systemIn = new BufferedReader(new InputStreamReader(System.in));
//5 创建输出流:用于向客户端返回数据
PrintWriter socketOut = new PrintWriter(socket.getOutputStream());
while (true) {
//读取客户端输入内容
String clientStr = socketIn.readLine();
System.out.println("客户端:" + clientStr);
if (clientStr.equals("bye")) {
//服务端 向 客户端 输出内容
socketOut.println(systemIn.readLine());
socketOut.flush();
break;
}
//服务端 向 客户端 输出内容
socketOut.println(systemIn.readLine());
socketOut.flush();
}
systemIn.close();
socketIn.close();
socketOut.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

2253

被折叠的 条评论
为什么被折叠?



