`

Socket + json + tomcat

 
阅读更多

本文主要实现不同tomcat服务器之间通过socket通信,数据格式json。

 

将服务器A的hibernate对象转化为json,传输给服务器B,生成hibernate对象,然后保存到数据库。

 

1、new 一个线程,用来启动serverSocket,可以用spring中的@PostConstructor自启动。

      核心代码如下:

     while(true){

            socket = serverSocket.accept();

            ExecutorService exec =  Executor.newCacheThreadPool();

            exec.execute (new RunableImpl());

     }

 

2、服务端RunableImpl

     核心代码:

     //数据较大时可以生成缓存文件,将数据保存到文件
     in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GB2312")); 
     String line;
     while ((line = in.readLine()) != null) {
           msg += line;
     }

    

     获得json格式的msg后

 

     //转化为List<User>

     JSONObject jsonObject = JSONObject.fromObject( msg); 

     List<User> list = (List<User>)JSONArray.toCollection(jsonObject.getJSONArray("arraydata"),User.Class);
     dao.saveAll(list);

 

    //msg格式如下:"{type:USER,arraydata:[{},{}]}"

 

3、客户端

    //list形式的hibernate对象数据转化为json

    List<User> list = dao.findAll();

    JSONArray jsonArray = JSONArray.fromObject( list);  
    strMsg = jsonArray.toString();

 

   //发送数据

    Socket socket= new Socket (ip,端口);

    out = new PrintWriter(socket.getOutputStream(),true); 
    out.println(strMsg); //数据较大时,可分组传输

    out.flush();
    out.close(); 

 

 

分享到:
评论

相关推荐

    tomcat 7.0 + websocket demo

    VIDEO.socket.onmessage = function(event) { var data = JSON.parse(event.data); console.log('收到服务器消息:' + data.message); }; VIDEO.socket.onclose = function() { console.log('视频聊天已断开'); }; ...

    基于springBoot + netty-socket.io + mongodb 的即时聊天后台.zip

    在本项目中,Spring Boot作为核心框架,提供了依赖注入、自动配置、内嵌Web服务器(如Tomcat)等功能,使得开发者能够快速构建聊天服务的后端逻辑。 **Netty-socket.io**: Socket.IO 是一个实时应用程序框架,它在...

    C#和java的socket通信

    客户端通常由一种语言编写,服务器端由另一种语言编写,两者通过约定的数据格式(如JSON或XML)交换信息。 五、网页方式的Socket通信 除了C#和Java直接通信,还可以借助WebSocket实现在网页上进行实时通信。...

    Tomcat8WebSockets:Tomcat8WebSockets 示例

    你可以自定义这些类来处理特定的数据格式,如JSON或自定义二进制格式。 **客户端WebSocket** 在客户端,我们可以通过JavaScript的WebSocket API与服务器建立连接,发送和接收消息。例如: ```javascript var ...

    socket即时通讯.zip

    1. **Spring Boot框架**:Spring Boot简化了Java Web应用的开发,通过内置的Tomcat服务器、自动配置和“starters”依赖管理,使得开发者可以快速构建可运行的应用。在这个项目中,Spring Boot作为基础架构,提供了...

    websocket+spring

    socket.send(JSON.stringify({message: 'Hello Server!'})); }; socket.onmessage = function(event) { // 接收到消息时 console.log('Message from server ', event.data); }; socket.onerror = function(error)...

    tomcatjss:应将Apache Tomcat问题的JSS连接器报告给Apache Tomcat Pagure问题的JSS连接器

    Apache Tomcat是一款广泛应用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,用于部署和运行Java Web应用程序。在标题和描述中提到的“tomcatjss”可能是一个与Apache Tomcat相关的...

    Spring Boot Socket实现与html页面的连接,案例讲解客户端与服务器端相互发消息.docx

    - `spring-boot-starter-web`:包含Spring Web MVC和Tomcat,用于构建Web应用程序。 - `spring-boot-starter-test`:测试相关的依赖,但排除了`junit-vintage-engine`,可能是为了避免与JUnit5的冲突。 2. **...

    flash+java通信例子

    6. **XML/JSON交换**:对于简单的数据交换,Flash和Java可以通过XML或JSON格式进行数据传输,这两种格式易于解析,兼容性好。 7. **WebSocket**:现代Web通信中,WebSocket提供了一种全双工、低延迟的连接方式,...

    久其移动Framework

    本文将详细介绍该框架所涉及的关键技术,包括数据库连接池(DatabaseConnectionPool)、对象关系映射(ORM)、动态代理(Proxy)、面向切面编程(AOP)、远程方法调用(RMI)以及HTTP、Socket、JSON等相关技术。 #### 二、...

    websocket私聊点对点通讯

    例如,可以使用JSON格式传输消息,包含用户ID、接收者ID、消息内容等字段。同时,需要对用户的连接进行验证和授权,防止未授权的访问。 压缩包中的"Tomcat-websocket私聊"可能包含了示例代码、配置文件等资源,用于...

    java++jsp+网络电视代码Java源码

    7. **XML和JSON解析**:可能涉及数据交换格式的处理,如XML或JSON的解析和生成。 8. **错误处理和日志记录**:学习如何正确地处理异常并记录日志,以帮助调试和监控应用状态。 9. **Spring框架集成**:如果项目...

    java写的一个聊天室模板

    这可能涉及到Tomcat、Jetty等Java应用服务器,或者Nginx、Apache等Web服务器,以及可能的云服务提供商如AWS、阿里云等。 通过深入学习这些知识点,你可以构建出功能更完善的聊天室应用,或者将其扩展到其他类型的...

    (完整word)实验指导书-Android平台下的NFC读写.doc

    3. 在接收到NFC标签后,解析标签中的数据,通常NFC标签可以存储文本、URI、JSON或其他格式的信息。 4. 使用socket编程建立Android应用与服务端的连接,将解析到的数据通过socket发送到服务端。 5. 在服务端,用...

    聊天系统(java+applet)

    3. **Java Socket编程**:为了实现聊天功能,Java的Socket编程可能被用来建立客户端与服务器之间的连接,允许数据在两者之间双向传输。 4. **多线程**:在聊天系统中,多线程是必不可少的,因为它允许同时处理多个...

    android程序员简历07.doc

    这两个项目让他深入理解了openFire服务器和asmack框架,熟练掌握了Socket通信和JSON解析,加深了TCP/IP协议的理解。同时,他掌握了基于NDK的JNI调用C语言的机制。通过音乐播放器项目,他巩固了对Android后台服务、...

    hello_server.rar

    4. **JSON解析**:地图服务通常返回JSON格式的数据,因此理解如何使用如Jackson、Gson或org.json等库来解析JSON是非常重要的。 5. **Maven或Gradle构建**:如果项目包含`pom.xml`或`build.gradle`文件,那么它可能...

    js调用java类的方法

    // 需要使用WebSocket相关的库,如Jetty或Tomcat @ServerEndpoint("/javaWebSocket") public class JavaWebSocket { @OnOpen public void onOpen(Session session) { // 连接建立时处理 } @OnMessage public ...

    j2me网络编程以及网络游戏的实现.doc

    1. **连接管理**:使用Java的Socket或HttpConnection类建立与服务器的连接,发送请求和接收响应。 2. **数据交换**:通常使用XML或JSON格式传输数据,便于解析和序列化。 3. **多线程**:由于网络操作通常涉及阻塞I/...

Global site tag (gtag.js) - Google Analytics