一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java搭建一個Socket服務器響應多用戶訪問

java搭建一個Socket服務器響應多用戶訪問

2020-08-10 19:07沈君 Java教程

本篇文章主要介紹了java搭建一個Socket服務器響應多用戶訪問,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

當我們搭建了一個Socket服務端,是需要去響應多用戶的訪問的。此時,我們就要使用多線程,為每個訪問的用戶建立一個線程來響應該用戶的訪問。

具體實現(xiàn),看如下代碼:

java" id="highlighter_340629">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package com.sun.socket;
import Java.io.IOException;
import java.NET.*;
import java.io.*;
import java.util.*;
 
/**
* Description:
* 搭建一個Socket服務器響應多用戶訪問
* @author Lee
* */
public class ServerSocketDemo {
ArrayList MSG = new ArrayList<>();
ArrayList RES = new ArrayList<>();
 
/**
 * Description:
 * 初始化數(shù)據(jù)
 * */
public void init(){
  MSG.add("hellow");
  RES.add("hi");
}
 
/**
 * Description:
 * 搭建一個Socket服務器響應多個用戶訪問
 * */
public void test1(){
  init();
  ServerSocket server = null;
 
  try{
    //以指定端口搭建一個Socket服務端
    server = new ServerSocket(12000); 
 
    //等待客戶端Socket實例,并創(chuàng)建一個線程去響應該客戶單實例
    while(true){
      new Response(server.accept()).start();;
    }
 
  }catch(IOException e){
    e.printStackTrace();
  }finally{
    try{
      server.close();
    }catch(IOException e){
      e.printStackTrace();
    }
 
  }
}
 
/**
 * Description:
 * 根據(jù)用戶輸入的內(nèi)容,返回相應的內(nèi)容
 *
 * @param msg 客戶端輸入的內(nèi)容
 * @return 返回服務端回復的內(nèi)容
 * */
public String getMsg(String msg){
  String res = "Are you kidding me?Please speak English.";
 
  for(int i=1;i<MSG.size();i++){
    if(msg.contains(MSG.get(i))){
      res = RES.get(i);
    }
  }
 
  return res;
}
 
 
public static void main(String[] args) {
  // TODO Auto-generated method stub
  new ServerSocketDemo().test1();
}
 
/**
 * Description:
 * 響應用戶
 * @author Lee
 * */
class Response extends Thread{
  Socket client;
 
  /**
   * Description:
   * 默認構(gòu)造器
   * */
  public Response(){}
  /**
   * Description:
   * 初始化Socket
   * */
  public Response(Socket client){
    this.client = client;
  }
 
  @Override
  public void run(){
    Scanner input = null;
    PrintWriter output = null;
 
    try{
      //獲取用戶端的輸入和輸出流
      input = new Scanner(client.getInputStream());
      output = new PrintWriter(client.getOutputStream());
 
      output.println("歡迎訪問!");
      output.flush();
 
      //等待客戶端的輸入
      String content = null;
      while(input.hasNext()){
        content = input.nextLine();
 
        //根據(jù)用戶端的輸入,做出相應的反應
        if(content.equalsIgnoreCase("quit")){
          break;
        }else{
          output.println(getMsg(content));
          output.flush();
        }
      }
 
    }catch(IOException e){
      e.printStackTrace();
    }finally{
      //關(guān)閉資源
      input.close();
      output.close();
    }
 
 
  }
}
}

1、我們可以寫一個小小測試工具類,來測試一下public String getMsg(String msg)方法。

對該類右鍵,選擇new新建一個JUnit Test Case 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.sun.socket;
import org.junit.Assert;
import org.junit.Test;
public class ServerSocketDemoTest {
  @Test
  public void testGetMsg() {
    try{
      //調(diào)用該方法,并與其目標值進行對比。
      String msg = new ServerSocketDemo().getMsg("在嗎");
      Assert.assertEquals("gun!", msg);
 
    }catch(Exception e){
      e.printStackTrace();
    }
  }
 
}

2、使用apche JMeter工具對該服務端進行壓力測試

(1)打開Apache JMeter,右鍵測試計劃->添加->Threads(Users)->Setup Thread Group

java搭建一個Socket服務器響應多用戶訪問

(2)設置線程屬性(線程數(shù),循環(huán)次等)

java搭建一個Socket服務器響應多用戶訪問

(3)右鍵添加->simpler->HTTP請求

java搭建一個Socket服務器響應多用戶訪問

(4)設置屬性,點擊運行就可以進行壓力測試了。

java搭建一個Socket服務器響應多用戶訪問

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/qq1131410679/article/details/55051195

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品成人免费观看 | 日本网络视频www色高清免费 | 亚洲AV精品一区二区三区不卡 | 欧美精品成人a多人在线观看 | 性色AV乱码一区二区三区视频 | 日本-区二区三区免费精品 日本破处 | 97视频免费人人观看人人 | 蜜桃影像传媒破解版 | 国产精品久久久久久久久免费观看 | 亚洲免费视频在线观看 | 91久久偷偷做嫩草影院电 | 国产成人免费高清激情视频 | porono日本人xxx| 荡娃艳妇系列小说 | 丝瓜视频黄瓜视频 | 调教肉文| 亚洲AV福利天堂一区二区三 | 亚洲区一| 毛片视频网站在线观看 | 国产精品久久国产三级国电话系列 | 四虎永久免费在线观看 | 亚洲高清无码在线 视频 | 韩国最新三级网站在线播放 | 欧美高清乌克兰精品另类 | 第一次破女视频国产一级 | 青青青青青国产免费手机看视频 | leslessexvideos日本 | free性videoxxⅹ印度 | 国产在线视频第一页 | 欧美伊人久久久久久久久影院 | 青青国产成人久久激情91麻豆 | 青春学堂在线观看 | 午夜片无码区在线观看 | 国产视频分类 | 黄 色 大 片 网站 | 国产欧美日韩精品一区二 | 日本69av| gay小太正初精 | 久久www免费人成_看片高清 | 女人把扒开给男人爽 | 国产自精品 |