EchoServer
2019-08-16 11:04:08来源:博客园 阅读 ()
EchoServer
服务端程序:
import java.io.IOException; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class EchoServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8000);//设置服务监听端口 System.out.println("等待客户端连接...");//打印提示信息 Socket clientSocket = serverSocket.accept();//等待客户端连接 Scanner scanner = new Scanner(clientSocket.getInputStream());//客户端输入流 scanner.useDelimiter("\n");//设置分隔符 PrintStream outPrintStream = new PrintStream(clientSocket.getOutputStream());//客户端输出流 boolean flag = true;//循环标记 while (flag) { if(scanner.hasNext()) {//有数据接收 String string = scanner.next().trim();//接收数据内容 if("bye".equalsIgnoreCase(string)) {//结束标记 outPrintStream.println("Bye!");//回应信息 flag = false;//结束循环 }else { outPrintStream.println("[ECHO]" + string);//Echo信息 } } } scanner.close();//关闭输入流 outPrintStream.close();//关闭输出流 clientSocket.close();//关闭客户端 serverSocket.close();//关闭服务端 } }
客户端程序:
package SocketDemo; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; import java.util.Scanner; public class EchoClient { private static final BufferedReader KEYBOARD_INPUT = new BufferedReader(new InputStreamReader(System.in)); public static String getString(String prompt) throws Exception{//键盘信息输入 System.out.print(prompt); String string = KEYBOARD_INPUT.readLine(); return string; } public static void main(String[] args) throws Exception{ Socket clientSocket = new Socket("localhost", 8000);//定义服务端的连接信息 //现在的客户端需要有输入与输出的操作支持,所以依然要准备Scanner与PrintWriter Scanner scanner = new Scanner(clientSocket.getInputStream());//接收服务端输入内容 scanner.useDelimiter("\n"); PrintStream outputPrintStream = new PrintStream(clientSocket.getOutputStream());//向服务端发送内容 boolean flag = true;//循环标记 while(flag) {//循环处理 String inputString = getString("请输入内容:").trim();//获取键盘输入数据 outputPrintStream.println(inputString);//加换行 if(scanner.hasNext()) {//服务器端有回应 System.out.println(scanner.next());//输出回应信息 } if("bye".equalsIgnoreCase(inputString)) {//结束判断 flag = false;//修改循环标记 } } scanner.close();//关闭输入流 outputPrintStream.close();//关闭输出流 clientSocket.close();//关闭客户端 } }
原文链接:https://www.cnblogs.com/sunzhongyu008/p/11239860.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 聊聊微服务架构及分布式事务解决方案! 2020-06-10
- java环境教程:Tomcat下载,安装,设置为Windows服务,启动 2020-06-09
- Spring Cloud微服务(一):公共模块的搭建 2020-06-07
- Java生鲜电商平台-微服务生鲜电商系统设计(小程序/APP) 2020-06-04
- 微服务平台技术架构 2020-06-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash