资源简介
压缩包里有客户端源码和服务器端源码,支持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个文件信息
评论
共有 条评论