0 0

mina发送数据的问题10

使用mina框架时,当我发送数据的时候为什么会接着在其后面还发送一个空报文啊 情况如下:
[11:57:12] NioProcessor-3 INFO  [] [] [org.apache.mina.filter.logging.LoggingFilter] - SENT: HeapBuffer[pos=0 lim=6 cap=6: 10 49 01 00 4A 16]
[11:57:12] NioProcessor-3 INFO  [] [] [org.apache.mina.filter.logging.LoggingFilter] - SENT: HeapBuffer[pos=0 lim=0 cap=0: empty]
请赐教!
package com.nari.mina.client;

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.future.IoFutureListener;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;

import com.nari.mina.server.MyProtocalPack;

public class myChatClient2 {
    
    private static final String HOST = "localhost";     
    private static final int PORT = 2500;     
    static long counter = 0;     
    final static int FC1 = 100;     
    static long start = 0;     
    /**   
     * 使用Mina的框架结构进行测试   
     *    
     * @param args   
     */    
    public static void main(String[] args) throws IOException {     
        start = System.currentTimeMillis();     
        IoConnector connector = new NioSocketConnector();   
        LoggingFilter lf = new LoggingFilter();     
    
        connector.getFilterChain().addLast("logger", lf);     
        connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory()));  
       connector.setHandler(new ChatClientHandler2());  
        connector.getSessionConfig().setUseReadOperation(true);
        connector.getSessionConfig().setReadBufferSize(100);     
        connector.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);      
        ConnectFuture connFuture = connector.connect(new InetSocketAddress(HOST, PORT));     
        connFuture.addListener(new IoFutureListener<ConnectFuture>() {     
            public void operationComplete(ConnectFuture future) {     
                try {     
                    if (future.isConnected()) {     
                        IoSession session = future.getSession();   
                       
                        sendData(session);       
                    } else {     
                        System.out.println("连接不存在 ");     
                    }     
                } catch (Exception e) {     
                    e.printStackTrace();     
                }     
            }     
        });     
        System.out.println("start client ...");    
          
    }     
    public static void sendData(IoSession session) throws IOException {     
        for (int i = 0; i < 100; i++) {     
            String content = "afdjkdafk张新波测试" + i;     
            MyProtocalPack pack = new MyProtocalPack((byte) i, content);     
            session.write(content);     
            System.out.println("send data:" + content);     
        }     
    }     

}

2010年7月23日 12:09

1个答案 按时间排序 按投票排序

0 0

http://sooxin.iteye.com/blog/648165

2010年8月08日 09:18

相关推荐

    给予mina 协议进行大数据传输

    3. **异步通信**:MINA的异步通信模式意味着发送请求后无需等待响应,而是继续处理其他任务,当响应到来时,MINA会通过回调函数通知应用程序。 4. **多协议支持**:MINA不绑定于特定的网络协议,开发者可以轻松创建...

    mina的高级使用,mina文件图片传送,mina发送文件,mina报文处理,mina发送xml和json

    3. **Mina发送文件** 发送文件的过程与图片类似,但可能需要考虑更多因素,如文件大小、文件类型等。Mina允许开发者自定义编码解码策略,因此可以根据需要选择合适的文件分块策略进行大文件传输。此外,为了保证...

    mina传输对象的示例

    5. **事件处理**: Mina使用事件驱动模型,当数据到达或发送时,会触发相应的事件,如`MessageReceivedEvent`和`MessageSentEvent`。你可以通过实现`IoHandler`接口来处理这些事件。 示例中的"imagine"可能是项目或...

    Android Mina UDP数据交互

    本文将深入探讨如何使用Mina库在Android客户端与Java服务器之间实现UDP(用户数据报协议)的数据交互。 UDP是一种无连接的、不可靠的传输层协议,相比TCP,它具有更低的延迟和更高的数据传输效率。然而,由于其不...

    socket 与 mina 交互数据

    同时,客户端也可以使用Mina创建一个Socket连接,发送数据到服务器,并通过接收过滤器解析服务器返回的信息。 总结起来,Socket和Mina都是Java网络编程的重要工具,Socket更适合简单的、低级别的网络通信,而Mina则...

    mina 上传文件和文件名

    MINA的I/O调度器会负责将这些数据打包成网络协议的数据包,如HTTP或自定义协议,然后通过网络发送出去。 文件名的处理是上传过程中不可忽视的一部分。在MINA中,你可以选择在请求头中携带文件名信息,或者将其作为...

    mina 服务器socket客服端发消息

    在Java开发中,Mina(Java Minimal ...在实际应用中,可能还需要考虑异常处理、心跳机制、多线程处理、消息序列化与反序列化等问题。Mina提供的API非常灵活,可以根据需求进行扩展和定制,以满足更复杂的应用场景。

    Mina server client实例

    Mina Client则是客户端部分,用于连接到Mina Server并发送请求。客户端同样基于NIO,可以实现非阻塞的I/O操作,这意味着即使在等待服务器响应时,客户端也可以执行其他任务,从而提高整体性能。在设置Mina Client时...

    mina客户端简单代码示例

    标题中的"mina客户端简单代码示例"意味着我们将探讨如何使用Mina框架编写一个基础的客户端程序,该程序能够连接到服务器并发送数据。描述指出,运行这个客户端程序(minaTestClient)会展示一个窗口,用户可以通过...

    spring boot 整合mina 串口

    最后,启动Spring Boot应用,Mina将会监听配置的串口,等待接收和发送数据。为了测试,你可以使用串口调试工具(如RealTerm、CoolTerm等)连接到同一串口,发送和接收数据。 以上就是Spring Boot整合Mina实现串口...

    MiNA框架新人指导

    客户端应用程序主要用于向服务端发送请求。同样地,在MiNA框架中,客户端的实现也很简单: - **创建IoConnector对象**:这是MiNA框架中的另一个核心组件,用于发起连接请求。 - **配置过滤器链**:定义一系列过滤器...

    mina 断包,粘包问题解决

    2. 自定义编码解码器:Mina支持用户自定义编码器和解码器,可以在数据发送前进行封装,接收后进行解析。通过这种方式,可以在数据包之间添加分隔符或者使用特定的协议格式,确保每个数据包都能正确地被识别和处理。 ...

    mina串口通讯

    双向控制锁确保了在一次通信操作中,只有一个设备可以发送数据,避免了数据碰撞和混乱。 调试过程中,可能会遇到如串口权限问题、数据格式错误、通信超时等常见问题。解决这些问题通常需要检查代码逻辑、配置参数...

    spring+mina实现http接口服务端通信客户端

    5. **消息处理**:在IoHandler中,你可以解析接收到的HTTP请求消息,将其转化为Mina能处理的数据格式,然后通过Mina的I/O模型发送回服务端。同样,服务端的响应也需要转换成HTTP响应返回给客户端。 6. **测试与优化...

    利用Mina进行TCP通信

    // 设置处理器,处理发送和接收的数据 connector.setHandler(new MyClientHandler()); // 连接到服务器 ConnectFuture future = connector.connect(new InetSocketAddress("localhost", 8080)); future....

    Mina+Socket通信

    文件"MinaSocket"可能包含了实现上述功能的详细代码,包括服务端的Acceptor配置、过滤器设置、事件处理器编写,以及客户端的Socket连接、数据发送和接收等。通过阅读和理解这些代码,你可以更好地掌握Mina与Socket...

    mina连接 mina心跳连接 mina断线重连

    Mina允许开发者自定义心跳包,通过发送无数据的包或者包含特定标识的数据包,来检查网络连接是否正常。心跳通常由客户端或服务端定期发起,如果在预定时间内未收到回应,则判断为连接异常,并可能触发断线重连流程。...

    mina demo mina jar包

    描述中的"实现客户端输入数据的返回"意味着,当客户端发送数据到服务端时,服务端的Handler会接收到这些数据,进行解析或者处理,然后将处理后的结果返回给客户端。这种交互模式在很多网络应用中非常常见,例如FTP、...

    mina-rxtx-2.2 实现串口通讯

    5. 数据传输:在服务端和客户端的处理逻辑中,通过`IoSession`对象的`write`方法发送数据,通过`messageReceived`事件处理接收到的数据。 6. 关闭资源:在通信完成后,记得关闭`IoSession`,释放系统资源。 通过...

    mina心跳包机制

    在TCP/IP协议中,一旦建立连接,双方就可以持续通信,但没有规定必须时刻发送数据。这可能导致在网络不稳定或长时间无数据交换时,连接因超时而被网络设备断开。心跳包机制就是为了防止这种“死连接”现象,通过定期...

Global site tag (gtag.js) - Google Analytics