[ 
https://issues.apache.org/jira/browse/DIRMINA-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13535614#comment-13535614
 ] 

zlh commented on DIRMINA-926:
-----------------------------

Set and Get  Iosession Attribute

        public void setSocketListMap(int deviceID,IoSession ioSession) {
                GlobalObject.log.addNewRec(null, LogType.LOG_SYSTEM_INFO, 0, 
-1, " Reg"+deviceID+"  IP:"+ioSession.getRemoteAddress());
                ioSession.setAttribute("deviceID",deviceID+"");
        }
        
        
        public int getDeviceIDByIoSession(IoSession sc)
        {
                   Object tmpobj  =  sc.getAttribute("deviceID");
                   int deviceID   = -1;
                   if (null!=tmpobj)
                   {
                     deviceID = Utils.strToInt((String)tmpobj);
                   }
                   return deviceID;
        }



Receive Data:

public void messageReceived(IoSession session, Object message) throws Exception 
{          
       //super.messageReceived(session, message); 
       byte[] revByteArr =(byte[])message ;
       MsgBlock msgBlock = new MsgBlock(revByteArr,session);    
       
       //get deviceID  By IoSession 
       int deviceID = 
GlobalObject.getCommLib().getDeviceIDByIoSession(session);  
       GlobalObject.log.addNewRec(revByteArr , LogType.LOG_SYSTEM_INFO, 0, -1, 
"address:"+session.getRemoteAddress()); 
       if  (deviceID==-1)
       {
           
                  GlobalObject.getReceiveQueue().putMsgQueue(msgBlock);
       }
       else
       {
                  
GlobalObject.deviceList[deviceSN].getReceiveQueue().putMsgQueue(msgBlock); 
       }
 } 





handle Queue

     MsgBlock   currentMsgBlock = 
GlobalObject.getReceiveQueue().getAndDeleteMsgQueueFirst();
     (or 
GlobalObject.deviceList[deviceID].getReceiveQueue().getAndDeleteMsgQueueFirst())
     
GlobalObject.deviceList[deviceID].getProtocolLib().analyticData(currentMsgBlock 
); 

 
handle Data

     received login  code; 
        
        xxx.xxxx.setSocketListMap(deviceID, ioSession); 
        this.deviceID = ioSession;
 
   

 send Data

     public boolean sendData(byte[] byteArr, int len, int deviceID,String 
remark) {
         IoSession session = GlobalObject.deviceList[deviceID].getIoSession();
         IoBuffer sendbuffer = Utils.byteToIoBuffer(byteArr, len);
         session.write(sendbuffer);
     }


This is a simplified code
No other code is associated. 
Do you doubt my code problem? 
Why is my server is running on the LAN is no problem。
Only when there is GPRS Devices  when it is wrong

                
> IoSession IP Error  when Socket Server Communicate With Microcomputer In LAN 
> and Internet.
> ------------------------------------------------------------------------------------------
>
>                 Key: DIRMINA-926
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-926
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.7
>         Environment: windows XP ,Eclipse  1.4.2
>            Reporter: zlh
>
> A server  in the LAN,Every Single Chip Microcomputer Connected by a switch.
> My Socket Server Is Runing In The Server,I Can Communicate With Every Single 
> Chip Microcomputer
> Now,I Want My Socket Server  Can Receive Data From Internet(By GPRS). a adsl 
> modem is connected to the 
> switch. the Server Can  Connect to internet use PPPoE  dial,  At first, The 
> Socket Server also 
> can Communicate with every Single Chip Microcomputer(Include LAN and 
> Internet). After a period of 
> time,a Error is Appear,
> Some Data Come from Internet But the IOsession is A LAN IP address.
> Change a older Verion Mina(1.1.7),But the Same.
>   My  mina  is 2.0.7.
>   this is some code:
>   public void messageReceived(IoSession session, Object message) throws 
> Exception
>   {
>        byte[] revByteArr =(byte[])message ;
>        GlobalObject.log.addNewRec(revByteArr , LogType.LOG_SYSTEM_INFO, 0, 
> -1,        
> "address:"+session.getRemoteAddress());   
>   }
>  
> 113484 INFO  2012-12-11 08:38:43 LowerComputerCommRec  
> address:/211.140.5.116:50937  : 68 1c 06 
> 00 04 00 0b 01 03 00 0d 00 00 00 00 1d 08 00 01 00 00 00 00 00 07 00 00 02 00 
> 00
> 117531 INFO  2012-12-11 08:38:47 LowerComputerCommRec  
> address:/211.140.5.116:50937  : 68 20 08 
> 00 04 00 84 01 
> 131500 INFO  2012-12-11 08:39:01 LowerComputerCommRec  
> address:/192.168.1.226:9000   : 68 0e 0a 
> 00 04 00 64 01 0a 00 0d 00 00 00 00 14 
>  Is it a MINA bug??

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to