Java Beginners

Moderators: zibadian
Number of threads: 1285
Number of posts: 2739

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
server socket variable cannot pass to diff function within the same c Posted by chuikingman on 8 Aug 2012 at 8:09 PM
I use below code to establish socket and write back string to out1 stream to client .

I accept the socket socket and out1 stream in run() , I use another function p_output_socket() to write back the string to out1 stream , but I find there is nul exception . probably, it is indicate that the server socket variable is null in function
p_output_socket() . It is ok in run function .
Pleae advice how I can pass the current server socket variable to function p_output_socket and use it ???
Below is the code

import java.io.File;
 import java.io.FileInputStream;
 import java.io.*;

import java.util.ArrayList;
import java.util.List;

import java.net.*;

import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.*;
import java.lang.Thread.*;
/* below use for http get */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.*;

import java.io.*;
import java.nio.channels.*;
import java.util. * ;
import java.io. * ;
import java.io.RandomAccessFile.*;
import java.io.RandomAccessFile;


import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.*;
import java.net.URL;
import java.net.URI;
import java.io.*;


import java.sql.*;
import javax.sql.*;
import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class doComms implements Runnable   {
    public static Socket server;
    public static ServerSocket listener;
    Thread t;

public static Statement stmt ;



    public String line,input,testabc;
   // public  DataOutputStream out1 ;
    public DataInputStream in;
    public static PrintWriter out1;
   doComms() {
 //Socket server;
  //   ServerSocket listener;
 //PrintWriter out1;

     //t = new Thread (this,"socket server 4444 run ");

     // t.start(); // Start the thread
  try {
listener = new ServerSocket(4444);

       }
     catch ( Exception y )  { y.printStackTrace();  }

    }

    public void run () {



    testabc="123";
      input="";

      try {


      Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection ("jdbc:mysql://10.1.1.89:3306/mysql", "root", "123456");
Statement stmt = con.createStatement();

       //listener = new ServerSocket(4444);
      //Socket server;


        doComms connection;

          server = listener.accept();


          // Get input from the client
          System.out.println("Start up socket input stream !!!");

          in = new DataInputStream (server.getInputStream());

          System.out.println("Start up socket output stream !!!");
          //out1 = new PrintStream(server.getOutputStream());

          PrintWriter out1 = new PrintWriter(
                             new BufferedOutputStream(server.getOutputStream(), 1024), false);

          //out1 = new DataOutputStream(server.getOutputStream());

      ClientHandler abc = new ClientHandler(server);

      Thread socserver = new Thread(abc);

           socserver.start();

        while((line = in.readLine()) != null && !line.equals(".")) {
          input=input + line;
          if ( line.startsWith("abc") )
           {
            System.out.println("put ok in out socket in docomms");
            out1.println("OK" );
          out1.flush();
        p_output_socket("testing ok");
            }
          else
          {
          System.out.println("put echo  in out socket in docomms");
            out1.println("echo what I get only :" + line);
          out1.flush();
        p_output_socket("testing echo ok");
            }




       









        }

        // Now write to the client

        System.out.println("Overall message is:" + input);
        p_output_socket("Overall message is:" + input);

        server.close();
      } catch (Exception e) {
        System.out.println("Exception on socket listen: " + e);
        e.printStackTrace();
      }
    }
   //below print string to output socket
   public  void p_output_socket(String a )
   {

     String input1 = this.input;
     String line1 = this.line ;


     try
     {
     //System.out.println("this testabc " + this.testabc );
     //System.out.println("this input " + this.input );
     //System.out.println("this line " + this.line );
     //System.out.println("a is " + a );



        String aa =a ;

          out1.println( aa );
          out1.flush();



       }
      catch ( Exception e) {
        System.out.println("Exception on socket output in DoComms " + e);
        e.printStackTrace();
      }



    }

   // above print string to output socket

 public static void insert_order_sql (Statement stmt,String v)
  {
    try {
    stmt.executeUpdate("INSERT INTO `o1` (`data` ) " + "VALUES ( '"+v+"' )");
        }
   catch ( Exception w )  { w.printStackTrace();      }

   }



}




 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.