Code problems with ServerSocket

Problems with WiFi, SQLite ,Bluetooth, WiMax, Proxies, etc...

Code problems with ServerSocket

Postby lordsaibat » Wed Jul 22, 2009 3:11 am

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. public void server()
  3.  
  4.             {
  5.  
  6.              DataOutputStream os=null;
  7.  
  8.                 DataInputStream is = null;
  9.  
  10.                 ServerSocket socket = null;
  11.  
  12.                 Socket ClientSocket = null;
  13.  
  14.                 String out = null;
  15.  
  16.                 try
  17.  
  18.                 {
  19.  
  20.                  socket = new ServerSocket(SERVERPORT);//10.0.2.2
  21.  
  22.  
  23.  
  24.                  if(socket == null)
  25.  
  26.                  {
  27.  
  28.                   Log.d("TagServer()", "socket null");
  29.  
  30.                  }
  31.  
  32.                  else
  33.  
  34.                  {
  35.  
  36.                   Log.d("TagServer()", "Waiting...");
  37.  
  38.                   ClientSocket = socket.accept();
  39.  
  40.                         os = new DataOutputStream(ClientSocket.getOutputStream());
  41.  
  42.                         is = new DataInputStream(ClientSocket.getInputStream());
  43.  
  44.                         /* By magic we know, how much data will be waiting for us*/
  45.  
  46.                         byte[] buf = new byte[100];
  47.  
  48.                         int readLen = 0;
  49.  
  50.                         boolean listening = true;
  51.  
  52.                        
  53.  
  54.                        
  55.  
  56.                         while(listening == true)
  57.  
  58.                         //while((out != "end") || (readLen = is.read(buf, 0, 100)) != -1)
  59.  
  60.                         //while (out != "end")
  61.  
  62.                         {
  63.  
  64.                                
  65.  
  66.                          if ((readLen = is.read(buf, 0, 100)) != -1){
  67.  
  68.                          out = new String(buf, 0, readLen-1);
  69.  
  70.                          Log.d("TCP", out);
  71.  
  72.                          os.writeBytes("gotit");
  73.  
  74.                          
  75.  
  76.                          String test = out.toString();
  77.  
  78.                          
  79.  
  80.                          if (test != "end")
  81.  
  82.                                 {
  83.  
  84.                                         listening = true;
  85.  
  86.                                 }else{
  87.  
  88.                                         listening = false;
  89.  
  90.                                 }
  91.  
  92.                          }
  93.  
  94.                        
  95.  
  96.                         }
  97.  
  98.                         os.close();
  99.  
  100.                         is.close();
  101.  
  102.                         socket.close();
  103.  
  104.                         ClientSocket.close();
  105.  
  106.                         Log.d("TagServer()", "Finished");
  107.  
  108.                  }
  109.  
  110.                 }
  111.  
  112.                 catch(Exception e)
  113.  
  114.                 {
  115.  
  116.                  System.out.println(e);
  117.  
  118.                  Log.d("TagServer()", e.toString());
  119.  
  120.                 }
  121.  
  122.             }
  123.  
  124.  
Parsed in 0.040 seconds, using GeSHi 1.0.8.4


Ok I am trying to be able to stop listening for packets and I am trying to do that with the test variable.
no matter what it seems that test never = ends.

Any ideas?
lordsaibat
Freshman
Freshman
 
Posts: 2
Joined: Wed Jul 22, 2009 3:02 am

Top

Postby lordsaibat » Thu Jul 23, 2009 11:43 pm

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. public void server()
  3.  
  4.             {
  5.  
  6.              DataOutputStream os=null;
  7.  
  8.                 DataInputStream is = null;
  9.  
  10.                 ServerSocket socket = null;
  11.  
  12.                 Socket ClientSocket = null;
  13.  
  14.                 String out = null;
  15.  
  16.                 try
  17.  
  18.                 {
  19.  
  20.                  socket = new ServerSocket(SERVERPORT);//10.0.2.2
  21.  
  22.  
  23.  
  24.                  if(socket == null)
  25.  
  26.                  {
  27.  
  28.                   Log.d("TagServer()", "socket null");
  29.  
  30.                  }
  31.  
  32.                  else
  33.  
  34.                  {
  35.  
  36.                   Log.d("TagServer()", "Waiting...");
  37.  
  38.                   ClientSocket = socket.accept();
  39.  
  40.                         os = new DataOutputStream(ClientSocket.getOutputStream());
  41.  
  42.                         is = new DataInputStream(ClientSocket.getInputStream());
  43.  
  44.                         /* By magic we know, how much data will be waiting for us*/
  45.  
  46.                         byte[] buf = new byte[100];
  47.  
  48.                         int readLen = 0;
  49.  
  50.                         boolean listening = true;
  51.  
  52.                        
  53.  
  54.                        
  55.  
  56.                         while(listening == true)
  57.  
  58.                         //while((out != "end") || (readLen = is.read(buf, 0, 100)) != -1)
  59.  
  60.                         //while (out != "end")
  61.  
  62.                         {
  63.  
  64.                                
  65.  
  66.                          if ((readLen = is.read(buf, 0, 100)) != -1){
  67.  
  68.                          out = new String(buf, 0, readLen-1);
  69.  
  70.                          Log.d("TCP", out);
  71.  
  72.                          os.writeBytes("gotit");
  73.  
  74.                          
  75.  
  76.                          //String test = out.toString();
  77.  
  78.                          listening = !out.contentEquals("end");
  79.  
  80.                          listening = !out.matches("end");
  81.  
  82.                          
  83.  
  84.                          }
  85.  
  86.                        
  87.  
  88.                         }
  89.  
  90.                         os.close();
  91.  
  92.                         is.close();
  93.  
  94.                         socket.close();
  95.  
  96.                         ClientSocket.close();
  97.  
  98.                         Log.d("TagServer()", "Finished");
  99.  
  100.                         notificationMgr =(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
  101.  
  102.                         displayNotificationMessage("Server Stopping");
  103.  
  104.                        
  105.  
  106.                        
  107.  
  108.                         stopSelf();
  109.  
  110.                  }
  111.  
  112.                 }
  113.  
  114.                 catch(Exception e)
  115.  
  116.                 {
  117.  
  118.                  System.out.println(e);
  119.  
  120.                  Log.d("TagServer()", e.toString());
  121.  
  122.                 }
  123.  
  124.             }
  125.  
  126. }
  127.  
  128.  
Parsed in 0.039 seconds, using GeSHi 1.0.8.4


Ok I figured it out so I thought I share with the group how I did it.

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. listening = !out.contentEquals("end");
  3.  
  4. listening = !out.matches("end");
  5.  
  6.                          
Parsed in 0.033 seconds, using GeSHi 1.0.8.4


any one of those works.

So go write server code. :)
lordsaibat
Freshman
Freshman
 
Posts: 2
Joined: Wed Jul 22, 2009 3:02 am

Top

Return to Networking & Database Problems

Who is online

Users browsing this forum: No registered users and 2 guests