package filter;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import socket.SocketServer;
/*
初始化socket
*/
public class RFilter extends HttpServlet {
private static final long serialVersionUID = 1L;
SocketServer socket;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
socket=new SocketServer();
socket.start();
System.out.println("load on start!");
}
public RFilter() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("***************RFilter doGet");
socket.cc.handCom();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("***************RFilter doPost");
socket.cc.handCom();
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package socket;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import filter.ClientController;
/*
socket服务端类
*/
public class SocketServer extends Thread{
ServerSocket ss = null; //socket连接
public ClientController cc;
public SocketServer() {
super();
try {
//
ss = new ServerSocket(9999);
cc=new ClientController();
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
System.out.println("准备好接收数据!");
try{
while (true) {
Socket socket = ss.accept();
if(socket!=null){
cc.addNewClient(socket);
}
}
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
package filter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.nio.channels.SocketChannel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.DeflaterOutputStream;
import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.Amf3Output;
/*
管理与客户端通讯的业务类
*/
public class ClientController {
private ArrayList<Socket> clients;
private SerializationContext context = new SerializationContext();
public ClientController(){
clients=new ArrayList<Socket>();
}
public void handCom(){
System.out.println("ClientController size:"+clients.size());
for(Socket inComing:clients){
try {
DataOutputStream dos = new DataOutputStream(inComing.getOutputStream());
Amf3Output out = new Amf3Output(context);
DeflaterOutputStream stream = new DeflaterOutputStream(dos);
out.setOutputStream(stream);
Map map = new HashMap();
String[] arr = "1,2,3,4,5".split(",");
map.put("datas", arr);
map.put("userName", "mumuyu99");
map.put("fullName", "最新消息");
out.writeObject(map);
stream.finish();
out.flush();
dos.flush();
System.out.println("clientController handCom");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public void addNewClient(Socket socket){
clients.add(socket);
System.out.println("****************用户登录************");
System.out.println("******登录用户数:"+clients.size()+"*****");
}
}
分享到:
相关推荐
整合Spring MVC、Webservice和Socket,可以构建一个既能够作为Webservice服务端接收并处理请求,也可以作为客户端调用其他Webservice的服务。同时,通过Socket可以实现实时的数据同步和推送功能,提升用户体验。 ...
### IIS与Tomcat整合详解 #### 一、前言 在Web开发领域,IIS (Internet Information Services) 和 Tomcat 分别是处理静态资源(如HTML、CSS、JavaScript等)和服务Java应用的重要服务器软件。随着业务的发展和技术...
本项目源码展示了如何使用Java进行WebSocket的整合,从而实现服务器消息推送功能。以下将详细介绍WebSocket的核心概念、Java整合WebSocket的步骤以及在实际项目中的应用。 1. WebSocket简介: WebSocket协议是HTML5...
### Apache与Tomcat整合的简单方法 #### 一、引言 随着互联网技术的发展,越来越多的应用需要同时利用Apache和Tomcat的优势。Apache作为一款稳定、高效且功能强大的Web服务器,而Tomcat则是一款专为Java应用程序...
在本项目"1.5Java聊天室的设计与实现原生Sevlet_socket.zip"中,我们探讨了如何使用Java编程语言构建一个基于Servlet和Socket的实时聊天应用。这个项目不仅涵盖了网络编程的基础知识,还涉及到了Web服务器交互的高级...
1. **jetty-util-9.4.12.v20180830.jar**: Jetty是一个轻量级的Java Web服务器和Servlet容器,这里的jetty-util库提供了许多用于网络和I/O操作的实用工具。 2. **websocket-common-9.4.12.v20180830.jar**: 这是...
### Ubuntu Linux 下 Apache 与 Tomcat 的整合 在 Ubuntu Linux 环境中,Apache 和 Tomcat 的整合是一项常见的任务,旨在实现静态内容通过 Apache 服务器进行高效分发,而动态内容(如 Java 应用)则通过 Tomcat ...
这个名为"Android+Tomcat+MySql登录注册和Socket聊天"的项目就是一个典型的案例,它整合了Android客户端、Java后端服务器(Tomcat)以及关系型数据库MySQL,同时实现了基于Socket的实时聊天功能。以下是对这些关键...
6. **网络编程**:Java的Socket编程允许开发者创建网络应用程序,理解TCP和UDP协议,以及ServerSocket和Socket类的使用,可以构建简单的客户端-服务器应用。 7. **JDBC数据库连接**:Java Database Connectivity ...
### Apache与Tomcat整合知识点详解 #### 一、Apache与Tomcat简介 - **Apache**:是一款免费开源的Web服务器解决方案,支持多种操作系统,如Windows、Linux等,并且可以通过简单的API扩展其功能。 - **Tomcat**:是...
创建一个简单的聊天室页面,用于展示WebSocket功能。 ```html <!DOCTYPE html> <title>Chat Room <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> $(document)....
JkMount /servlet/* ajp13 JkMount /*.jsp ajp13 JkMount /*.action ajp13 JkMount /*.shtml ajp13 JkMount /dwr/* ajp13 #TOMCAT整合结束 conf/extra/httpd-vhosts.conf #jlitshop NameVirtualHost love ...
- **Tomcat6**:Apache Tomcat 6是一款开源的Java Servlet容器,主要用于部署和运行基于Java的应用程序,尤其是JSP和Servlet。 #### 实现目标 本项目的主要目标是在Windows XP SP3操作系统上配置IIS5以支持JSP应用...
通过整合,可以利用IIS作为前端服务器,而将动态内容如JSP、Servlet等请求转发至后端的Tomcat服务器进行处理。这种方式不仅能够提高系统的安全性,还能有效利用IIS的强大静态资源处理能力和Tomcat对Java应用的良好...
它的核心理念是“简单、面向对象、健壮、安全”。Java的设计使得它能够在各种操作系统上运行,包括Windows、Linux、Mac OS等,这就是所谓的“独立于平台”。 1. **Java语法基础** Java的语法深受C++的影响,但简化...
例如,你可以创建一个简单的`WebsocketEndPoint`类如下: ```java import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web....
使用-Javaagent参数添加远程调试选项,如`-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000`,然后通过IDE如IntelliJ IDEA或Eclipse进行远程连接。 12. **Tomcat的错误日志在哪里查看?** ...
+ J2EE 规范下的 Jsp、Servlet、JDBC、JavaBeans 的 MVC 模式的开发项目 + Struts、Hibernate、Spring、Framework 等的项目整合 + Tomcat 服务器配置和调试 + IDE(集成开发环境)的使用 + MySql、Oracle ...
标题提到的"tomcat 中运行php 环境的jar包"正是指这样的解决方案,通过特定的Java桥接技术实现PHP与Tomcat的整合。下面将详细介绍这个知识点: 首先,我们需要理解的是Tomcat是一个开源的Java Servlet容器,它主要...