1
This commit is contained in:
parent
78c774542b
commit
2f1f77a36d
@ -59,22 +59,71 @@ func (this *WSPListener_) accept() {
|
||||
*/
|
||||
func (this *WSPListener_) socketRead(conn net.Conn) {
|
||||
buf := make([]byte, 1024 * 64)
|
||||
recvBufLen := 0
|
||||
recvBuf := make([]byte, 1024 * 64 * 2)
|
||||
for {
|
||||
bufLen, err := conn.Read(buf)
|
||||
if err == nil && bufLen > 0 {
|
||||
alreadyReadBytes := 0
|
||||
for {
|
||||
{
|
||||
readBytes := bufLen - alreadyReadBytes
|
||||
if readBytes > MAX_PACKET_LEN - recvBufLen {
|
||||
readBytes = MAX_PACKET_LEN - recvBufLen
|
||||
}
|
||||
|
||||
if readBytes > 0 {
|
||||
copy(recvBuf[recvBufLen:],
|
||||
buf[alreadyReadBytes:alreadyReadBytes + readBytes])
|
||||
recvBufLen += readBytes
|
||||
alreadyReadBytes += readBytes
|
||||
}
|
||||
}
|
||||
|
||||
offset := 0
|
||||
prevOffset := 0
|
||||
for {
|
||||
prevOffset = offset
|
||||
this.decodePacket(&recvBuf, &offset, recvBufLen)
|
||||
if prevOffset > offset || offset > recvBufLen {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if offset > 0 && offset < recvBufLen {
|
||||
|
||||
}
|
||||
recvBufLen -= offset
|
||||
if recvBufLen >= MAX_PACKET_LEN {
|
||||
panic("recv max packet")
|
||||
}
|
||||
|
||||
if alreadyReadBytes >= bufLen {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
buf := make([]byte, 1024 * 64)
|
||||
recvBufLen := 0
|
||||
recvBuf := make([]byte, 1024 * 64 * 2)
|
||||
offset := 0
|
||||
for {
|
||||
bufLen, err := conn.Read(buf)
|
||||
if err == nil && bufLen > 0 {
|
||||
copy(buf[:bufLen], recvBuf[offset:])
|
||||
copy(recvBuf[offset:], buf[:bufLen])
|
||||
recvBufLen += bufLen
|
||||
warning := false
|
||||
for bufLen - offset >= 12 {
|
||||
packLen := int(recvBuf[0]) >> 16 + int(recvBuf[1])
|
||||
for recvBufLen - offset >= 12 {
|
||||
packLen := int(recvBuf[0]) + int(recvBuf[1] << 16)
|
||||
if recvBuf[8] == 'K' && recvBuf[9] == 'S' {
|
||||
if bufLen - offset < 12 + packLen {
|
||||
if recvBufLen - offset < 12 + packLen {
|
||||
continue
|
||||
}
|
||||
hdr := new(q5.MsgHdr)
|
||||
hdr.MsgId = int(recvBuf[0]) >> 16 + int(recvBuf[1])
|
||||
hdr.SeqId = int(recvBuf[0]) >> 16 + int(recvBuf[1])
|
||||
hdr.MsgId = int(recvBuf[2]) + int(recvBuf[3] << 16)
|
||||
//hdr.SeqId = int(recvBuf[4]) + int(recvBuf[5] )
|
||||
offset += 12 + packLen
|
||||
} else {
|
||||
warning = true
|
||||
@ -82,12 +131,16 @@ func (this *WSPListener_) socketRead(conn net.Conn) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
copy(recvBuf[:offset], recvBuf[:])
|
||||
copy(recvBuf[:], recvBuf[:offset])
|
||||
if warning {
|
||||
f5.SysLog().Warning("收到client非法数据包")
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
func (this *WSPListener_) decodePacket(recvBuf *[]byte, offset *int, recvBufLen int) {
|
||||
f5.SysLog().Warning("收到client非法数据包")
|
||||
}
|
||||
|
||||
func (this *WSPListener_) parseNetPkt() {
|
||||
@ -128,6 +181,6 @@ func (this *WSPListener_) sendProxyMsg(conn net.Conn, socketHandle uint16, msg p
|
||||
buff[3] = byte(msgId >> 16)
|
||||
buff[9] = byte(socketHandle & 0xFF)
|
||||
buff[10] = byte(socketHandle >> 16)
|
||||
copy(msgData[:], buff[12:])
|
||||
copy(buff[12:], msgData[:])
|
||||
conn.Write(buff)
|
||||
}
|
||||
|
@ -3,3 +3,7 @@ package main
|
||||
const (
|
||||
PLAYER_MGR_HANDLER_ID = 1
|
||||
)
|
||||
|
||||
const (
|
||||
MAX_PACKET_LEN = 1024 * 64
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user