资源简介

压缩包里有客户端源码和服务器端源码,支持TCP的双向认证,也支持WEBSOCKET的双向认证,内附测试 wss的测试例子, 需要生成PKCS12的证书,导入浏览器才可以测试。

资源截图

代码片段和文件信息

/*
 * Copyright 2012 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License
 * version 2.0 (the “License“); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing software
 * distributed under the License is distributed on an “AS IS“ BASIS WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
package com.tesla.websocket.server;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;


import java.io.BufferedReader;
import java.io.InputStreamReader;


public class SecureClient 
{

    private final String host;
    private final int port;
    private final String sslMode;

    public SecureClient(String host int port String sslMode) {
this.host = host;
this.port = port;
this.sslMode = sslMode;
    }

    public void run() throws Exception 
    {
EventLoopGroup group = new NioEventLoopGroup();
try 
{
    Bootstrap b = new Bootstrap();
    b.group(group).channel(NioSocketChannel.class).handler(new SecureClientInitializer(sslMode));
    // Start the connection attempt.
    Channel ch = b.connect(host port).sync().channel();
    // Read commands from the stdin.
    ChannelFuture lastWriteFuture = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    for (;;) 
    {
     System.out.println(“---read lne : “);
    
     String line = in.readLine();
     if (line == null) {
     break;
     }

     System.out.println(“ : “+line);
// Sends the received line to the server.
lastWriteFuture = ch.writeAndFlush(line + “\r\n“);

// If user typed the ‘bye‘ command wait until the server closes
// the connection.
if (“bye“.equals(line.toLowerCase())) {
    ch.closeFuture().sync();
    break;
}
    }

    // Wait until all messages are flushed before closing the channel.
    if (lastWriteFuture != null) {
     lastWriteFuture.sync();
    }
} finally {
    // The connection is closed automatically on shutdown.
    group.shutdownGracefully();
}
    }

    public static void main(String[] args) throws Exception
    {
String addr = “127.0.0.1“;
if (args.length > 0) {
    try {
     addr = args[0];
    } catch (NumberFormatException e) {
     e.printStackTrace();
    }
}
    
int port = 8888;
if (args.length > 1) {
    try {
     port = Integer.parseInt(args[1]);
    } catch (NumberFormatException e) {
     e.printStackTrace();
    }
}
//new WebSocketServer().run(port);

S

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-02-02 14:19  TeslaSSLClient\
     文件         585  2017-02-02 14:16  TeslaSSLClient\.classpath
     文件         390  2017-01-26 18:12  TeslaSSLClient\.project
     目录           0  2017-01-26 18:12  TeslaSSLClient\.settings\
     文件         598  2017-01-26 18:12  TeslaSSLClient\.settings\org.eclipse.jdt.core.prefs
     目录           0  2017-02-02 14:19  TeslaSSLClient\bin\
     目录           0  2017-02-02 14:16  TeslaSSLClient\bin\com\
     目录           0  2017-02-02 14:16  TeslaSSLClient\bin\com\tesla\
     目录           0  2017-02-02 14:16  TeslaSSLClient\bin\com\tesla\websocket\
     目录           0  2017-02-02 14:32  TeslaSSLClient\bin\com\tesla\websocket\server\
     文件        1038  2017-02-02 14:16  TeslaSSLClient\bin\com\tesla\websocket\server\SSLMODE.class
     文件        3519  2017-02-02 22:05  TeslaSSLClient\bin\com\tesla\websocket\server\SecureClient.class
     文件        1866  2017-02-02 14:16  TeslaSSLClient\bin\com\tesla\websocket\server\SecureClientHandler.class
     文件        3165  2017-02-02 22:04  TeslaSSLClient\bin\com\tesla\websocket\server\SecureClientInitializer.class
     文件        4990  2017-02-02 14:16  TeslaSSLClient\bin\com\tesla\websocket\server\SecureSslContextFactory.class
     文件        1411  2016-11-03 16:17  TeslaSSLClient\bin\log4j.properties
     目录           0  2017-02-02 22:07  TeslaSSLClient\export\
     目录           0  2017-01-26 18:15  TeslaSSLClient\lib\
     文件      489883  2016-11-03 16:17  TeslaSSLClient\lib\log4j-1.2.17.jar
     文件      832960  2016-11-03 16:17  TeslaSSLClient\lib\mysql-connector-java-5.1.22-bin.jar
     文件     1576326  2015-05-16 19:59  TeslaSSLClient\lib\netty-all-5.0.0.Alpha1.jar
     目录           0  2017-02-02 14:16  TeslaSSLClient\src\
     目录           0  2017-02-02 14:16  TeslaSSLClient\src\com\
     目录           0  2017-02-02 14:16  TeslaSSLClient\src\com\tesla\
     目录           0  2017-02-02 14:16  TeslaSSLClient\src\com\tesla\websocket\
     目录           0  2017-02-02 14:32  TeslaSSLClient\src\com\tesla\websocket\server\
     文件          80  2017-01-26 18:45  TeslaSSLClient\src\com\tesla\websocket\server\SSLMODE.java
     文件        3223  2017-02-02 22:05  TeslaSSLClient\src\com\tesla\websocket\server\SecureClient.java
     文件        1425  2017-02-02 13:03  TeslaSSLClient\src\com\tesla\websocket\server\SecureClientHandler.java
     文件        2855  2017-02-02 22:04  TeslaSSLClient\src\com\tesla\websocket\server\SecureClientInitializer.java
     文件        5406  2017-02-02 11:02  TeslaSSLClient\src\com\tesla\websocket\server\SecureSslContextFactory.java
............此处省略65个文件信息

评论

共有 条评论