Пример #1
0
/**
 * server read
 **/
func processRead(s *udpsession.Session) {
	conn := *s.C
	LOG.Println("udp2tcp processRead")
	id := s.GetId()
	for {
		buf := make([]byte, 4096)
		n, err := conn.Read(buf[96:])
		if err != nil {
			LOG.Println("server read ", err)
			releaseSession(id, true)
			break
		}

		s.ProcessNewDataToClientProxy(buf[:96+n])
		for {
			p := s.GetNextSendDataToSend()
			if p == nil {
				break
			}
			// tunnel write
			p.LogPacket()
			ut.WritePacketToClientProxy(p)
		}
	}
}