1. 登录系统 
登陆消息使用的消息数据结构体是: 
#define MSG_USER_NAME_LEN 24 
#define MSG_PASSWD_LEN 24 
typedef struct __msg_login_t 

char user_name[MSG_USER_NAME_LEN]; 
char user_pwd[MSG_PASSWD_LEN]; 
char is_support_d1; 
char unuserd; 
short local_right; 
int remote_right; 
int device_type; 
msg_time_t local_time; 
}msg_login_t; 
typedef struct _msg_time_t 

int year; 
int month; 
int day; 
int hour; 
int minute; 
int second; 
}msg_time_t;   请求消息如下: 
FieldName Value 
msg_head.msg_type MSG_LOGIN 
msg_head.msg_subtype 无效 
msg_head.msg_size 数据包长度 
msg_head.ack_flag 无效 
msg_head 
msg_head.unres[3] 保留值 
user_name 用户名 
user_pwd 密码 
is_support_d1 无效 
unuserd 保留值 
local_right 无效 
remote_right 无效 
device_type 无效 
msg_data 
local_time 本地时间,用于校时     unuserd 保留值 
local_right 无效 
remote_right 无效 
device_type 无效 
msg_data 
local_time 本地时间,用于校时 应答消息如下: 
FieldName Value 
msg_head.msg_type MSG_LOGIN 
msg_head.msg_subtype 无效 
msg_head 
msg_head.msg_size 数据包长度 
msg_head.ack_flag 返回结果 
msg_head.unres[3] 保留值 
user_name 无效 
user_pwd 无效 
is_support_d1 是否支持D1 
unuserd 保留位 
local_right 本地权限 
remote_right 远程权限 
device_type 设备类型 
local_time 无效  我写的程序   
public class Socket { 
public static void main(String[] args) 

  try 
  { 
   java.net.Socket socket  = new java.net.Socket(InetAddress.getByName("abc.abc.com"),3312); 
   DataOutputStream  os = new DataOutputStream(socket.getOutputStream()); 
   MsgHead mh = new MsgHead(); 
   mh.setMsg_size(mh.getHEADER_LEN()+60); 
   mh.setMsg_subtype((short)1); 
   mh.send(os); 
   char msg_data[] = new char[1024]; 
   
   Login login = new Login(); 
   login.setUser_name("Admin".toCharArray()); 
   login.setUser_pwd("111111".toCharArray()); 
   login.setMsgDate(new MsgDate()); 
   login.send(os); 
   InputStream is  = socket.getInputStream(); 
   BufferedInputStream bis  = new BufferedInputStream(is); 
   int l =  0; 
   while((l=bis.read())!=-1) 
   { 
    System.out.println((char)l); 
   } 
  } 
  catch(Exception e) 
  { 
   e.printStackTrace(); 
  } 
  


public class Login { 
private char user_name[] = new char[24]; 
private char user_pwd[] = new char[24];; 
private char is_support_d1; 
private char unuserd; 
private short local_right; 
private int remote_right; 
private int device_type; 
private MsgDate msgDate = new MsgDate(); 
public Login() 

  

public void send( DataOutputStream out ) throws IOException 

   out.write(new String(user_name).getBytes()); 
   out.write(new String(user_pwd).getBytes()); 
   out.writeChar(is_support_d1); 
   out.writeChar(unuserd); 
   out.writeShort(local_right); 
   out.writeInt(remote_right); 
   out.writeInt(device_type); 
   out.write(msgDate.toString().getBytes()); 
   out.flush(); 

.......................  省略set get 方法 public class MsgHead { 
public static final int HEADER_LEN = 7; 
private short msg_type; //消息类型 
private short msg_subtype; //消息子类型 
private int msg_size; //消息数据msg_data 的字节数 
private char ack_flag; //确认标志 
private char[]  unused  = new char[3]; 
public MsgHead() 

  

public void send( DataOutputStream out ) throws IOException 

   out.writeShort( msg_type ); 
   out.writeShort(msg_subtype ); 
   out.writeShort(msg_size); 
   out.writeChar(ack_flag); 
   out.write(new String(unused).getBytes()); 
   out.flush(); 
} .................. 省略 set get 方法   
发送请求后, 服务端没有响应数据过来  ,  麻烦各位帮小弟看一下