ServerUdpSendHandler.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using CommonServer_ICE.Msg;
  2. using Slice;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. namespace CommonServer_ICE.handler
  8. {
  9. /// <summary>
  10. /// 服务器端UDP数据接收器实现类:接收客户端发来的ICE请求,委托监听器实现类处理
  11. /// </summary>
  12. internal class ServerUdpSendHandler : SenderDisp_
  13. {
  14. // 委托处理
  15. private ServerMsgHandler delegateHandler;
  16. public ServerUdpSendHandler(ServerMsgHandler delegateHandler)
  17. {
  18. this.delegateHandler = delegateHandler;
  19. }
  20. /// <summary>
  21. /// 接收客户端发送的数据包
  22. /// </summary>
  23. /// <param name="recvPort">发送方侦听端口</param>
  24. /// <param name="message">数据包</param>
  25. /// <param name="current">Ice通讯包</param>
  26. public override void SendData(int recvPort, TransMessage message, Ice.Current current)
  27. {
  28. Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
  29. delegateHandler.RecvData(recvPort, message, udpConInfo.remoteAddress, udpConInfo.remotePort);
  30. }
  31. /// <summary>
  32. /// 接收客户端收到服务器数据包时回送的应答数据包序列号
  33. /// </summary>
  34. /// <param name="recvPort">发送方侦听端口</param>
  35. /// <param name="serial">应答数据包序列号</param>
  36. /// <param name="current">Ice通讯包</param>
  37. public override void SendAck(int recvPort, long serial, Ice.Current current)
  38. {
  39. Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
  40. delegateHandler.SendDataRecvAck(recvPort, serial, udpConInfo.remoteAddress, udpConInfo.remotePort);
  41. }
  42. /// <summary>
  43. /// 客户端连接到服务器
  44. /// </summary>
  45. /// <param name="recvPort">发送方侦听端口</param>
  46. /// <param name="current">Ice通讯包</param>
  47. public override void Connect(int recvPort, Ice.Current current)
  48. {
  49. Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
  50. delegateHandler.Connect(recvPort, udpConInfo.remoteAddress, udpConInfo.remotePort);
  51. }
  52. /// <summary>
  53. /// 服务器连接到客户端的正确连接响应
  54. /// </summary>
  55. /// <param name="current">Ice通讯包</param>>
  56. public override void ConnectAck(Ice.Current current)
  57. {
  58. // 目前服务器端不连接到客户端,所以不处理此请求
  59. }
  60. /// <summary>
  61. /// 服务器端收到客户端发来的关闭连接请求
  62. /// </summary>
  63. /// <param name="recvPort">发送方侦听端口</param>
  64. /// <param name="current">Ice通讯包</param>
  65. public override void Close(int recvPort, Ice.Current current)
  66. {
  67. Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
  68. delegateHandler.Close(recvPort, udpConInfo.remoteAddress, udpConInfo.remotePort);
  69. }
  70. /// <summary>
  71. /// 服务器端收到客户端接到服务器端的关闭请求后的确认请求
  72. /// </summary>
  73. /// <param name="recvPort">发送方侦听端口</param>
  74. /// <param name="current">Ice通讯包</param>
  75. public override void CloseAck(int recvPort, Ice.Current current)
  76. {
  77. Ice.UDPConnectionInfo udpConInfo = (Ice.UDPConnectionInfo)current.con.getInfo();
  78. delegateHandler.CloseAck(recvPort, udpConInfo.remoteAddress, udpConInfo.remotePort);
  79. }
  80. }
  81. }