//xBuffer:=Socket.ReceiveText;
//LOGIN_BUFFER:=StrLCopy(nBuffer, PChar(xBuffer),6); LOGIN_BUFFER 似乎不能和xBuffer 共存~ 获取的值老是错误的
所以判断不出包~ 大家帮忙修一修!或者提出其他方法例如Stream什么的 小弟谢了先! 
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
 var
  IP_ADDRESS,
  LOGIN_BUFFER,
  xBuffer:String;
  vBuffer: array[0..255] of Char;
  nBuffer: array[0..255] of Char
Begin
IP_ADDRESS:=Socket.RemoteAddress + ':' +InttoStr(Socket.RemotePort)+' ';IF (Socket.ReceiveLength=32) then 
//如果接受的包长度为32 则
Begin
xBuffer:=Socket.ReceiveText;      
//定义 xBuffer = Socket.ReceiveText
LOGIN_BUFFER:=StrLCopy(nBuffer, PChar(xBuffer),6); 
//定义 LOGIN_BUFFER = 从接受到的数据包中获取第六个字符HEX类型
Memo1.Lines.Add(IP_ADDRESS + 'Connect.');  
//Memo1递增一条客户连接记录
End       
ELSE
IF Socket.ReceiveLength=64 Then    
//如果接受的长度=64 则
Begin
IF Copy(PCHAR(xBuffer),6,6) = LOGIN_BUFFER then  
//如果从xBuffer中复制出的第6个字符 等于 LOGIN_BUFFER 则
Begin
Memo1.Lines.Add(IP_ADDRESS + 'Login.');   
//Memo1递增一条客户登陆记录
EndElse
IF Copy(PCHAR(xBuffer),6,6) <> LOGIN_BUFFER then 
//如果从xBuffer中复制出的第6个字符 不等于 LOGIN_BUFFER 则
Begin
Memo1.Lines.Add(IP_ADDRESS + 'Open.');   
//Memo1递增一条客户开启记录
EndELSE
Begin
Memo1.Lines.Add(IP_ADDRESS +'Error RECV Packet.'); 
//异常错误记录
End
End;
end;