Bind.java
上传用户:leafage163
上传日期:2022-08-08
资源大小:15k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package com.zzxy.shortmessage.SGIP;
  2. import java.nio.ByteBuffer;
  3. public class Bind  extends SGIPAbstractStruct{
  4. /*1B 登录类型。
  5.   1:SP向SMG建立的连接,用于发送命令
  6.   2:SMG向SP建立的连接,用于发送命令
  7.   3:SMG之间建立的连接,用于转发命令
  8.   4:SMG向GNS建立的连接,用于路由表的检索和维护
  9.   5:GNS向SMG建立的连接,用于路由表的更新
  10.   6:主备GNS之间建立的连接,用于主备路由表的一致性
  11.   11:SP与SMG以及SMG之间建立的测试连接,用于跟踪测试其它:保留*/
  12. public byte Login_Type=1;
  13. public String Login_Name;   //16B 服务器端给客户端分配的登录名
  14. public String Login_Passowrd;  //16B 服务器端和Login Name对应的密码
  15. public String Reserve;//8B 保留,扩展用
  16. public static final int STRUCT_SIZE=41;
  17. public Bind() {
  18. Head head = new Head();
  19. head.Msglen=Head.STRUCT_SIZE+this.STRUCT_SIZE;
  20. head.Cmd_id=SGIP.SGIP_BIND;
  21. this.setHead(head);
  22. }
  23. //@Override
  24. public ByteBuffer getBuffer() {
  25. ByteBuffer buffer = ByteBuffer.allocate(STRUCT_SIZE);
  26. buffer.order(byteOrder);
  27. buffer.put(Login_Type);
  28. buffer.put(Login_Name.getBytes());
  29. for (int i = Login_Name.getBytes().length; i < 16; i++) {
  30. buffer.put((byte)0);
  31. }
  32. buffer.put(Login_Passowrd.getBytes());
  33. for (int i = Login_Passowrd.getBytes().length; i < 16; i++) {
  34. buffer.put((byte)0);
  35. }
  36. for (int i = 0; i < 8; i++) {
  37. buffer.put((byte)0);
  38. }
  39. buffer.flip();
  40. return buffer;
  41. }
  42. //@Override
  43. public void setBuffer(ByteBuffer buffer) throws Exception {
  44. buffer.order(byteOrder);
  45. Login_Type = buffer.get();
  46. byte temp[] = new byte[16];
  47. buffer.get(temp, 0, 16);
  48. Login_Name = new String(temp, "GB2312");
  49. Login_Name = Login_Name.trim();
  50. buffer.get(temp, 0, 16);
  51. Login_Passowrd = new String(temp, "GB2312");
  52. Login_Passowrd = Login_Passowrd.trim();
  53. }
  54.   }