java多客户端请求响应_Java实现服务器端对多个客户端请求响应
首先,创建一个服务器端的套接字,并规定套接字监听的端口:
ServerSocket serverSocket = new ServerSocket(8001);
然后,等待客户端通过端口8001的请求:
Socket socket=serverSocket.accept();
接下来创建客户端接收到的套接字的输入输出流,并将输入输出流转化成扫描器和写入器:
InputStream inputStream = incomingSocket.getInputStream();
OutputStream outputStream = incomingSocket.getOutputStream();
//将输入流转化为扫描器,输出流转化为写入器
Scanner inScanner=new Scanner(inputStream);
PrintWriter outPrintWriter= new PrintWriter(outputStream, true);
接下来就可以运用扫描器获得客户端传来的数据,并运用写入器将传来的数据发送给客户端:
String backString=inScanner.next();
outPrintWriter.println("you give me:"+backString);
然后,将每一个连接创建一个新的线程,独立运行。
运用命令行的telnet命令就可以连接上客户端:
可以多次创建连接:
一下为完整代码:
package server;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ThreadEchoServer {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
int i=1;
ServerSocket serverSocket = new ServerSocket(8001);
while(true){
//等待客户端通过端口8001请求的连接
Socket socket=serverSocket.accept();
System.out.println("spawning"+i);
Runnable runnable= new ThreadEchoHandler(socket);
Thread thread = new Thread(runnable);
thread.start();
i++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class ThreadEchoHandler implements Runnable
{
private Socket incomingSocket;
public ThreadEchoHandler(Socket in){
incomingSocket=in;
}
public void run(){
try {
try {
//建立套接字的输入输出流
InputStream inputStream = incomingSocket.getInputStream();
OutputStream outputStream = incomingSocket.getOutputStream();
//将输入流转化为扫描器,输出流转化为写入器
Scanner inScanner=new Scanner(inputStream);
PrintWriter outPrintWriter= new PrintWriter(outputStream, true);
//运用写入器的println函数向客户端输出字符串
outPrintWriter.println("welcome!");
//将客户端传输的数据发送回去,如果客户端输入的数据为bye,则断开连接
boolean flag=false;
while(!flag&&inScanner.hasNext()){
String backString=inScanner.next();
outPrintWriter.println("you give me:"+backString);
if(backString.trim().equals("bye")){
flag=true;
}
}
} finally {
// TODO: handle exception
//关闭套接字(很重要,防止造成资源浪费)
incomingSocket.close();
}
} catch (IOException e) {
// TODO: handle exception
}
}
}
本文参考《Java核心技术卷II》
java多客户端请求响应_Java实现服务器端对多个客户端请求响应相关推荐
- java http请求图片_Java上传带图片的Http请求
服务器端想得到的?不可以的,必需上传了,才可以. 如果中间想得到. Android提交post请分享上传图片,Java如何获取HttpEnAndroid端发送post请分享,上传图片,把byte[]弄 ...
- java实现等待程序响应_java – Ning:连接到websocket并等待响应
使用Ning创建并连接到Websocket,以下是我的配置, NettyAsyncHttpProviderConfig config = new NettyAsyncHttpProviderConfi ...
- java 监听客户端的退出_Java socket 服务端如何监控客户端异常关闭?
慕函数4003404 关闭是会抛出异常的,捕捉之后进行处理,退出循环 @Override public void run() { Boolean isExit = false; while (!isE ...
- java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...
经 常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来 连 Tomcat 容器 和 S ...
- java 请求响应_java http接口请求响应 request response
接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...
- java实现请求发送_java实现响应重定向发送post请求操作示例
本文实例讲述了java实现响应重定向发送post请求操作.分享给大家供大家参考,具体如下: 关于重定向我们用的比较多的还是redirect:重定向,默认发送的get请求. return "r ...
- JAVA客户端数据传输_java模拟TCP通信实现客户端上传文件到服务器端
java模拟TCP通信实现客户端上传文件到服务器端,供大家参考,具体内容如下 客户端 package com.zr; import java.io.FileInputStream; import ja ...
- java相关网络协议无响应_java网络协议有哪些
上网的途径有很多,java是最普遍的,那么卑java网络协议有哪些?了解网络安全常识,首先就要了解计算机网络安全有哪些基本注意事项,下面佰佰安全网小编就带您认识一下吧. 概念 协议是指计算机通信网络中 ...
- 如何让服务器端持续监听客户端的请求?
前面的程序,不管服务器端还是客户端,都有一个问题,就是处理完一个请求立即退出了,没有太大的实际意义.能不能像Web服务器那样一直接受客户端的请求呢?能,使用 while 循环即可. 修改前面的回声程序 ...
最新文章
- 小狗钱钱_✅每次构建待办事项列表应用程序时,都会有一只小狗? 死了?
- Java 锁粗化与循环
- 5G改变企业发展业务的方式-Vecloud微云
- 树莓派3B+运行arm_computer_library
- 怎样用计算机算出别人的出生日期,【怀孕出生日期计算器_怀孕出生日期计算器专题】- 天鹅到家...
- 线性代数---矩阵的各种问题求解方法
- macOS Monterey值得升级吗?Monterey 与 Big Sur的对比
- Qt文档阅读笔记-Multiple Inheritance Example 实例解析及Automatic Connections解析
- 2020过半,程序员“跳槽”还是“卧槽”,你想好了吗?
- SQL Server元数据损坏(metadata corruption)修复
- 《Linux编程》学习笔记 ·000【Linux介绍】
- 【Sqoop】Sqoop job实现增量导入的原理
- 博文视点大讲堂35期《Google Android创赢路线与产品开发实战》读者见面会
- Android报错: Caused by: java.lang.ClassCastException: com.github.mikephil.charting.charts.PieChart can
- GIS相关网站、社区、论坛收藏
- idea打包docker镜像
- Java分布式系统框架教程,架构设计
- 手机java应用安装失败_解决OPPO手机在Android studio 环境下安装失败问题
- Trajan求割边,强连通分量
- ipv4 pxe 联想start_PC开机出现Start pxe over ipv4解决办法 PC重启后显示start pxe over IPv4...