网络编程模型「建议收藏」

网络编程模型

大家好,又见面了,我是全栈君。

多线程回声(Echo)模型:

网络编程模型「建议收藏」
网络编程模型「建议收藏」

 1 import java.io.PrintStream;
 2 import java.net.ServerSocket;
 3 import java.net.Socket;
 4 import java.util.Scanner;
 5 
 6 public class EchoSrever {
 7     private static class MyThread implements Runnable{
 8         private Socket client;
 9         public MyThread(Socket client){
10             this.client=client;
11         }
12         @Override
13         public void run() {
14             try{
15             Scanner scan = new Scanner(client.getInputStream());
16             scan.useDelimiter("\n");
17             PrintStream out = new PrintStream(client.getOutputStream());
18             boolean flag = true;
19             while (flag) {
20                 if (scan.hasNext()) {
21                     String str = scan.next().trim();
22                     if ("byebye".equalsIgnoreCase(str)) {
23                         out.println("BYEBYE!!!");
24                         flag = false;
25                         break;
26                     }
27                     out.println("Echo:" + str);
28                 }
29             }
30             out.close();
31             scan.close();
32             }catch(Exception e){
33                 
34             }
35         }
36         
37     }
38     public static void main(String[] args) throws Exception {
39         ServerSocket server = new ServerSocket(8888);
40     boolean flag = true;
41         while (flag) {
42             Socket client = server.accept();
43             new Thread(new MyThread(client)).start();
44         }
45         server.close();
46     }
47 }

服务器端

网络编程模型「建议收藏」
网络编程模型「建议收藏」

 1 import java.io.IOException;
 2 import java.io.PrintStream;
 3 import java.net.Socket;
 4 import java.util.Scanner;
 5 
 6 public class EchoSocket {
 7     public static void main(String[] args) throws Exception, IOException {
 8         Socket client = new Socket("localhost",8888);
 9         Scanner keyScan = new Scanner (System.in);
10         keyScan.useDelimiter("\n");
11         Scanner netScan = new Scanner (client.getInputStream());
12         netScan.useDelimiter("\n");
13         PrintStream out = new PrintStream(client.getOutputStream());
14         boolean flag = true;
15         while(flag){
16             System.out.println("输入要发送的内容:");
17             String str =null;
18             if(keyScan.hasNext()){
19                 str = keyScan.next().trim();
20                 out.println(str);
21                 if (netScan.hasNext()) {
22                     System.out.println(netScan.next());
23                 }
24             }
25             if("byebye".equalsIgnoreCase(str)){
26                 flag=false;
27             }
28         }
29         out.close();
30         netScan.close();
31         keyScan.close();
32     }
33 }

客户端代码

 

转载于:https://www.cnblogs.com/ak666/p/8204726.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107774.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎样卸载干净eclipse_eclipse卸载又重新安装之曲折心路

    以前下过EclipseIDEforJavaDevelopers(其实当时自己下的时候也没有什么详细查应该下哪个,随便下的一个版本),课程老师要求下载红框框起来的这个EclipseIDEforEnterpriseJavaDevelopers(压缩包名字:eclipse-jee-2019-09-R-win32-x86_64)。其实问题不大,卸了重下呗。但是(敲黑板),踩了几个坑,差点摔…

    2022年4月6日
    75
  • PAT乙级-坑点集合

    PAT乙级-坑点集合PAT乙级虽然挺简单但是坑不少。因为不给出测试数据,所以不知道怎么才能AC。以下几个题都是只做对了一部分,剩下的错误的点怎么想都不知道怎么才能过,所以整理一下,等回头再慢慢琢磨。1.1008数组元素循环右移问题1008数组元素循环左移2.1012数字分类1012数字分类3.1014福尔摩斯的约会1014福尔摩斯的约会4.1017A/B…

    2022年5月2日
    38
  • json_decode的结果是null

    json_decode的结果是null一、前言      突然发现一个接口出了问题,经过排查之后发现是json_decode($str,true)的问题,返回竟然是null。这个问题大家可能都碰到过,出现问题的原因就那么几种,再次记录一下吧二、原因1、首先使用json_last_error确定问题$arrDataList=json_decode($content…

    2022年7月17日
    19
  • Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed(佷有可能是版本问题)

    Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed(佷有可能是版本问题)前言:本人小白一枚,最近在自学JAVA时遇到了一个小问题,在网上求解无果后,自己找到了原因,这里跟大家分享一下。开发环境:Win10;IntelliJIDEA2021.3.2版本信息:Java\jdk-17.0.2;apache-maven-3.8.4-bin;springboot2.3.4编程目的:本人之前对JAVA一窍不通,最近在自学JAVA时想要用JAVA,Springboot和maven搭建一个最基础的helloworld程序。报错信息:ERROR后面显示“o.s.boot.

    2025年10月9日
    4
  • 龙族h路明非和诺诺_龙族六

    龙族h路明非和诺诺_龙族六清晨,路明非正在熟睡,‘起床了路明非,太阳照屁股了!’芬格尔大喊,路明非终于被惊醒,揉了揉眼睛不满道:‘芬格尔你搞毛线啊!今天可是星期天!’‘星期你妹啊!今天要出任务了你TM还睡!’路明非一听有任务脑子瞬间清醒拿起手机一看“卧槽(#゚Д゚)!都八点了,要迟到了,再晚就要挨骂了。”芬格尔忙说“那你赶紧穿上衣服走了”。“哦,好好,那咱们走吧”。两人穿好衣服急急忙忙的向机场过去。等两人终于到…

    2022年10月8日
    5
  • 基于STM32的电池管理系统触摸屏设计方案

    基于STM32的电池管理系统触摸屏设计方案

    2021年9月8日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号