1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- using CommonServer_ICE.Msg;
- using Slice;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace CommonServer_ICE.handler
- {
- /// <summary>
- /// 服务器端UDP数据接收器实现类:接收客户端发来的ICE请求,委托监听器实现类处理
- /// </summary>
- internal class ServerUdpSendHandler : SenderDisp_
- {
- // 委托处理
- private ServerMsgHandler delegateHandler;
- public ServerUdpSendHandler(ServerMsgHandler delegateHandler)
- {
- this.delegateHandler = delegateHandler;
- }
- /// <summary>
- /// 接收客户端发送的数据包
- /// </summary>
- /// <param name="recvPort">发送方侦听端口</param>
- /// <param name="message">数据包</param>
- /// <param name="current">Ice通讯包</param>
- public override void SendData(int recvPort, TransMessage message, Ice.Current current)
- {
- Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
- delegateHandler.RecvData(recvPort, message, udpConInfo.remoteAddress, udpConInfo.remotePort);
- }
- /// <summary>
- /// 接收客户端收到服务器数据包时回送的应答数据包序列号
- /// </summary>
- /// <param name="recvPort">发送方侦听端口</param>
- /// <param name="serial">应答数据包序列号</param>
- /// <param name="current">Ice通讯包</param>
- public override void SendAck(int recvPort, long serial, Ice.Current current)
- {
- Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
- delegateHandler.SendDataRecvAck(recvPort, serial, udpConInfo.remoteAddress, udpConInfo.remotePort);
- }
- /// <summary>
- /// 客户端连接到服务器
- /// </summary>
- /// <param name="recvPort">发送方侦听端口</param>
- /// <param name="current">Ice通讯包</param>
- public override void Connect(int recvPort, Ice.Current current)
- {
- Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
- delegateHandler.Connect(recvPort, udpConInfo.remoteAddress, udpConInfo.remotePort);
- }
- /// <summary>
- /// 服务器连接到客户端的正确连接响应
- /// </summary>
- /// <param name="current">Ice通讯包</param>>
- public override void ConnectAck(Ice.Current current)
- {
- // 目前服务器端不连接到客户端,所以不处理此请求
- }
- /// <summary>
- /// 服务器端收到客户端发来的关闭连接请求
- /// </summary>
- /// <param name="recvPort">发送方侦听端口</param>
- /// <param name="current">Ice通讯包</param>
- public override void Close(int recvPort, Ice.Current current)
- {
- Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
- delegateHandler.Close(recvPort, udpConInfo.remoteAddress, udpConInfo.remotePort);
- }
- /// <summary>
- /// 服务器端收到客户端接到服务器端的关闭请求后的确认请求
- /// </summary>
- /// <param name="recvPort">发送方侦听端口</param>
- /// <param name="current">Ice通讯包</param>
- public override void CloseAck(int recvPort, Ice.Current current)
- {
- Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
- delegateHandler.CloseAck(recvPort, udpConInfo.remoteAddress, udpConInfo.remotePort);
- }
- }
- }
|