package com.test.transfer;
import com.test.coder.Decoder;
import com.test.coder.Encoder;
import com.test.handler.TcpClientHandler;
import com.test.model.Message;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
public class TcpClient {
public static String HOST = "localhost";
public static int PORT = 9999;
public static Bootstrap bootstrap = getBootstrap();
public static Channel channel = getChannel(HOST,PORT);
/**
* 初始化Bootstrap
* @return
*/
public static final Bootstrap getBootstrap(){
EventLoopGroup group = new NioEventLoopGroup();
Bootstrap b = new Bootstrap();
b.group(group).channel(NioSocketChannel.class);
b.handler(new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast(new Encoder());
pipeline.addLast(new Decoder());
pipeline.addLast("handler", new TcpClientHandler());
}
});
b.option(ChannelOption.SO_KEEPALIVE, true);
return b;
}
public static final Channel getChannel(String host,int port){
Channel channel = null;
try {
channel = bootstrap.connect(host, port).sync().channel();
} catch (Exception e) {
System.out.println(String.format("连接Server(IP[%s],PORT[%s])失败", host,port));
return null;
}
return channel;
}
public static void sendMsg(Object msg) throws Exception {
if(channel!=null){
channel.writeAndFlush(msg).sync();
System.out.println("消息已发送!");
}else{
System.out.println("消息发失败?,连接尚未建立!");
}
}
public static void main(String[] args) throws Exception {
try {
Message message = new Message();
byte[] versionNo = new byte[4];
versionNo = "2".getBytes();
message.setVersionNo(versionNo);
byte[] sequenceNo = new byte[4];
sequenceNo = "33".getBytes();
message.setSequenceNo(sequenceNo);
byte flag = 1;
message.setContinueFlag(flag);
byte[] timestamp = new byte[16];
timestamp = "201602181431".getBytes();
message.setTimestamp(timestamp);
byte[] messageId = new byte[16];
messageId = "AAAAAAAAAAAAAAAA".getBytes();
message.setMessageId(messageId);
short messageType = 12;
message.setMessageType(messageType);
short messagePriority = 11;
message.setMessagePriority(messagePriority);
byte[] messageLength = new byte[4];
messageLength = "16".getBytes();
message.setMessageLength(messageLength);
byte[] deviceId = new byte[16];
deviceId = "BBBBBBBBBBBBBBBB".getBytes();
message.setDeviceId(deviceId);
byte[] messageTime = new byte[4];
messageTime = "1230".getBytes();
message.setMessageTime(messageTime);
byte[] messageData;
messageData = "hello".getBytes(); //5
message.setMessageData(messageData);
TcpClient.sendMsg(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Netty4编写服务器客户端,自定义编解码,发送自定义消息
共41个文件
class:17个
java:13个
prefs:3个
5星 · 超过95%的资源 需积分: 50 240 下载量 42 浏览量
2016-02-24
13:50:46
上传
评论 6
收藏 1.97MB RAR 举报
温馨提示
根据给定的消息协议,自己定义一个消息类,编写好服务端与客户端,自定义好编解码器,在客户端发送此消息,服务端获取消息并向客户端发送同样格式的消息;导入Eclipse maven项目运行即可跑通。
资源推荐
资源详情
资源评论
收起资源包目录
test.rar (41个子文件)
test
pom.xml 927B
target
test-classes
com
test
AppTest.class 603B
classes
META-INF
maven
com
test
pom.xml 927B
pom.properties 213B
MANIFEST.MF 105B
com
test
transfer
TcpClient$1.class 1KB
ObjectTranferServer$1.class 1KB
TcpClient.class 4KB
ObjectTranferServer.class 2KB
TcpServer$1.class 1KB
ObjectTransferClient$1.class 1KB
TcpServer.class 2KB
ObjectTransferClient.class 2KB
handler
ObjectTransferClientHandler.class 1KB
TcpClientHandler.class 1KB
TcpServerHandler.class 1KB
ObjectTransferServerHandler.class 2KB
model
Message.class 3KB
test
DecoderTest.class 1KB
coder
Decoder.class 2KB
Encoder.class 1KB
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.core.resources.prefs 119B
org.eclipse.jdt.core.prefs 736B
src
test
java
com
test
AppTest.java 674B
main
java
com
test
transfer
ObjectTransferClient.java 2KB
TcpServer.java 3KB
ObjectTranferServer.java 2KB
TcpClient.java 4KB
handler
ObjectTransferServerHandler.java 675B
ObjectTransferClientHandler.java 740B
TcpServerHandler.java 2KB
TcpClientHandler.java 371B
model
Message.java 3KB
test
DecoderTest.java 870B
coder
Decoder.java 2KB
Encoder.java 911B
lib
netty-all-4.0.33.Final.jar 2.01MB
.project 556B
.classpath 1KB
json-lib-2.4-jdk15.jar 155KB
共 41 条
- 1
单飞的主场
- 粉丝: 17
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页