JAVA NIO 异步TCP服务端向客户端消息群发代码教程实战

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA NIO 异步TCP服务端向客户端消息群发代码教程实战相关的知识,希望对你有一定的参考价值。

前言 


   项目需要和第三方厂商的服务需要用TCP协议通讯,考虑到彼此双方可能都会有断网重连、宕机重启的情况,需要保证 发生上述情况后,服务之间能够自动实现重新通信。研究测试之后整理如下代码实现。因为发现客户端重启后,对于服务端来说原来的客户端和服务端进程进程已经关闭,启动又和服务端新开了一个进程。所以实现原理就可以通过服务端向客户端群发实现,断开重新连接通讯。之前写的是BIO阻塞机制,这次用NIO非阻塞来写。

代码 

tcp服务端代码



import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author TARZAN
 */
public class HttpSocketServer 
    public static void main(String[] args) 
        try 
            ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
            InetSocketAddress socketAddress = new InetSocketAddress(8080);
            serv

以上是关于JAVA NIO 异步TCP服务端向客户端消息群发代码教程实战的主要内容,如果未能解决你的问题,请参考以下文章

java tcp服务端向客户端消息群发代码教程实战

java BIO tcp服务端向客户端消息群发代码教程实战

Java TCP/IP Socket基于NIO的TCP通信(含代码)

从经典多线程到 java.nio 异步/非阻塞服务器

Socket Server-基于NIO的TCP服务器

基于java的聊天室/群发控制台程序