Commit 17b1cf6e authored by Him188moe's avatar Him188moe

Working on message events

parent 87ccf60d
...@@ -38,7 +38,6 @@ class ClientTouchPacket(val qq: Int, val serverIp: String) : ClientPacket() { ...@@ -38,7 +38,6 @@ class ClientTouchPacket(val qq: Int, val serverIp: String) : ClientPacket() {
this.writeQQ(qq) this.writeQQ(qq)
this.writeHex("00 00 00 00 03 09 00 08 00 01") this.writeHex("00 00 00 00 03 09 00 08 00 01")
//this.writeIP("192.168.1.1"); //this.writeIP("192.168.1.1");
println("serverIp=$serverIp")
this.writeIP(serverIp); this.writeIP(serverIp);
//this.writeIP("123456789") //this.writeIP("123456789")
this.writeHex("00 02 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 02 00 19") this.writeHex("00 02 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 02 00 19")
......
...@@ -25,7 +25,7 @@ abstract class ServerPacket(val input: DataInputStream) : Packet { ...@@ -25,7 +25,7 @@ abstract class ServerPacket(val input: DataInputStream) : Packet {
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
fun ofByteArray(bytes: ByteArray): ServerPacket { fun ofByteArray(bytes: ByteArray): ServerPacket {
println("Raw received: ${bytes.toUByteArray().toUHexString()}") //println("Raw received: ${bytes.toUByteArray().toUHexString()}")
val stream = bytes.dataInputStream() val stream = bytes.dataInputStream()
...@@ -76,6 +76,7 @@ abstract class ServerPacket(val input: DataInputStream) : Packet { ...@@ -76,6 +76,7 @@ abstract class ServerPacket(val input: DataInputStream) : Packet {
"00 5C" -> ServerAccountInfoResponsePacketEncrypted(stream) "00 5C" -> ServerAccountInfoResponsePacketEncrypted(stream)
"00 58" -> ServerHeartbeatResponsePacket(stream) "00 58" -> ServerHeartbeatResponsePacket(stream)
//"00 CE" ->
else -> throw IllegalArgumentException(idHex) else -> throw IllegalArgumentException(idHex)
} }
......
package net.mamoe.mirai.network.packet.server.event
import net.mamoe.mirai.network.packet.client.ClientPacket
import net.mamoe.mirai.network.packet.server.ServerPacket
import java.io.DataInputStream
/**
* @author Him188moe
*/
class ServerMessageEventPacket(input: DataInputStream) : ServerPacket(input) {
override fun decode() {
}
}
@ExperimentalUnsignedTypes
class ClientGroupMessageResponsePacket : ClientMessageResponsePacket() {
}
/**
* 告知服务器已经收到数据
*/
@ExperimentalUnsignedTypes
open class ClientMessageResponsePacket : ClientPacket() {
override fun encode() {
}
}
\ No newline at end of file
package netty;
/**
* Created by XiuYin.Cui on 2018/9/10.
*/
package netty; package netty;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.DatagramPacket;
import io.netty.channel.socket.nio.NioDatagramChannel;
import io.netty.handler.codec.MessageToMessageEncoder;
import net.mamoe.mirai.network.packet.client.ClientPacket;
import java.net.InetSocketAddress;
import java.util.List;
public class UDPPacketSender {
private final EventLoopGroup group;
private final Channel channel;
public UDPPacketSender(InetSocketAddress address) throws InterruptedException {
group = new NioEventLoopGroup();
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(group)
.channel(NioDatagramChannel.class)
.option(ChannelOption.SO_BROADCAST, true)
.handler(new LogEventEncoder(address));
channel = bootstrap.bind(0).sync().channel();
}
private static final class LogEventEncoder extends MessageToMessageEncoder<ClientPacket> {
private final InetSocketAddress remoteAddress;
private LogEventEncoder(InetSocketAddress remoteAddress) {
this.remoteAddress = remoteAddress;
}
@Override
protected void encode(ChannelHandlerContext ctx, ClientPacket packet, List<Object> out) {
var buffer = ctx.alloc().buffer();
buffer.writeBytes(packet.toByteArray());
out.add(new DatagramPacket(buffer, remoteAddress));
}
}
private void sendPacket(ClientPacket packet) {
channel.writeAndFlush(packet);
}
public void stop() {
group.shutdownGracefully();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment