java编写一个简单的回射服务器

2026-02-28 03:16:02

1、在服务器端新建一个ServerSocket对象,并阻塞等待客户端连接。

java编写一个简单的回射服务器

2、客户端创建和服务器通信的套接字对象

java编写一个简单的回射服务器

3、客户端使用io流从控制台输入一个字符串,并向服务端发送该字符串。同时接受服务器返回的字符串,打印在控制台。

java编写一个简单的回射服务器

4、服务器端获取从客户端接收的字符串,并将该字符串发送回客户端。

java编写一个简单的回射服务器

5、运行时先启动服务端,然后启动客户端。

java编写一个简单的回射服务器

java编写一个简单的回射服务器

6、全部代码

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 Client {

// 搭建客户端

public static void main(String[] args) throws IOException {

try {

// 1、创建客户端Socket,指定服务器地址和端口

Socket socket=new Socket("127.0.0.1", 5209);

System.out.println("客户端启动成功");

// 2、获取输出流,向服务器端发送信息

// 向本机的5209端口发出客户请求

BufferedReader br = new BufferedReader(

new InputStreamReader(System.in));

// 由系统标准输入设备构造BufferedReader对象

PrintWriter write = new PrintWriter(

socket.getOutputStream());

// 由Socket对象得到输出流,并构造PrintWriter对象

//3、获取输入流,并读取服务器端的响应信息 

BufferedReader in = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

// 由Socket对象得到输入流,并构造相应的BufferedReader对象

String readline;

readline = br.readLine(); // 从系统标准输入读入一字符串

while (!readline.equals("end")) {

// 若从标准输入读入的字符串为 "end"则停止循环

write.println(readline);

// 将从系统标准输入读入的字符串输出到Server

write.flush();

String msg = in.readLine();

System.out.println("server:" + msg);

// 从Server读入一字符串,并打印到标准输出上

readline = br.readLine(); // 从系统标准输入读入一字符串

} // 继续循环

//4、关闭资源 

write.close(); // 关闭Socket输出流

in.close(); // 关闭Socket输入流

socket.close(); // 关闭Socket

} catch (Exception e) {

// 出错,打印出错信息

System.out.println("can not listen to:" + e);

}

}

}

class Server {

//搭建服务器端

public static void main(String[] args) throws IOException{

//创建一个服务器端Socket,即SocketService 

new Server().start();;

}

public void start(){

try{

ServerSocket server=null;

try{

//指定绑定的端口,并监听此端口。

//创建一个ServerSocket在端口5209监听客户请求

server=new ServerSocket(5209);

System.out.println("服务器启动成功");

}catch(Exception e) {

//出错,打印出错信息

System.out.println("没有启动监听:"+e);

}

Socket socket=null;

try{

//调用accept()方法开始监听,等待客户端的连接 

//使用accept()阻塞等待客户请求,有客户

//请求到来则产生一个Socket对象,并继续执行

socket=server.accept();

}catch(Exception e) {

//出错,打印出错信息

System.out.println("Error."+e);

}

//3、获取输入流,并读取客户端信息 

BufferedReader in=new BufferedReader(

new InputStreamReader(socket.getInputStream()));

//由Socket对象得到输入流,并构造相应的BufferedReader对象

PrintWriter writer=new PrintWriter(socket.getOutputStream());

//由Socket对象得到输出流,并构造PrintWriter对象

String msg = in.readLine();

while (!msg.equals("end")) {

System.out.println("client:" + msg);

writer.println(msg);

writer.flush();

msg = in.readLine();

}

//5、关闭资源 

writer.close(); //关闭Socket输出流

in.close(); //关闭Socket输入流

socket.close(); //关闭Socket

server.close(); //关闭ServerSocket

}catch(Exception e) {//出错,打印出错信息

System.out.println("Error."+e);

}

}

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢