By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,008 Members | 2,895 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,008 IT Pros & Developers. It's quick & easy.

need help with my senior project

P: 1
hi everybody

i am nwebie in this forum but i think it is useful for me and the member are helpful

my project is about connecting client with the server to start exchanging messages between them.

to be more clear we process this purpose we serve this to the student in the university. how??
student will send a message that contains his name,id and request by format the server want such as zaina-20024008-grade.
the grade is the request and it will be different from one to another becouse it may be subject,pass credit or remain credits an so on. and then click send

when the message recievd to the server the server will superate the message to keep name , id and grade in its location to use it later. then it will access to the database with the name and id it got and start to get the request result and then send it back to the client and ask to the client if he need to get othe info or terminate

i thought to communicate the client with the server by socket connection " stream socket" and i have just finshed the code for one side which is for the server and still working to the client but i have a question occured in my mind and it may stupid question to you

since we diclare the port number in both client and server for listening to connect and declare the ip number in the client which is the local host name, is must the socket connect to network to available access and connect? in another meaning do i need to use modem to be the server connect to the internet becouse since we declare the host name"ip" we need network layer
does it??

i need you help please and sorry for my weakness language but i hope you understand what i want and looking for

i post the code here and note that the double quotation thais for the database i didnt fill still
Expand|Select|Wrap|Line Numbers
  1. package test;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6.  
  7. import java.net.ServerSocket;
  8. import java.net.Socket;
  9.  
  10. import java.sql.Connection;
  11. import java.sql.DriverManager;
  12. import java.sql.ResultSet;
  13. import java.sql.SQLException;
  14. import java.sql.Statement;
  15.  
  16.  
  17. public class PcServer extends Thread {
  18.     // declare unbound server socket
  19.     private ServerSocket ServS =null ;
  20.     //declare unconnected client socket
  21.     private Socket ClientConnection = null;
  22.     // input stream from client
  23.     private ObjectInputStream IS;
  24.     //output stream to client
  25.     private ObjectOutputStream OS;
  26.  
  27.  
  28.     //CONSTRUCTOR
  29.     public PcServer (Socket ClientSocket){
  30.         ClientConnection = ClientSocket;
  31.     }
  32.  
  33.     public PcServer() {}
  34.  
  35.  
  36.     // set up run server
  37.     public void runServer(){
  38.         try //creat server socket
  39.         { ServS = new ServerSocket (3131);//3131 is the port number      
  40.     }
  41.     catch (IOException e) {
  42.         System.err.println("Could not listen on port:3131");
  43.         System.exit(-1);
  44.     } 
  45.         boolean listening = true;
  46.         while (listening)
  47.         { try
  48.           { ClientConnection = ServS.accept();//allow server to accept connection from client
  49.  
  50.             //open input stream from the socket connection to read the data from the client
  51.             IS=new ObjectInputStream(ClientConnection.getInputStream());
  52.  
  53.             //open data out stream from the socket connection to write data to the client
  54.             OS=new ObjectOutputStream (ClientConnection.getOutputStream());
  55.  
  56.             //start the process(sending and recieving data) from/to client
  57.              starExchange();
  58.           }
  59.           catch (Exception Ex){
  60.               Ex.printStackTrace();
  61.           }
  62.           try // terminate all connection and close stream gate
  63.           { OS.close();
  64.             IS.close();
  65.             ClientConnection.close();}
  66.           catch (Exception ex)
  67.           { ex.printStackTrace();}
  68.  
  69.         }
  70.     }
  71.         //start the process of the program
  72.         public void starExchange() throws Exception{
  73.             String msg =(String)IS.readObject();//read msg coming from client
  74.             //EON=End Of Name
  75.             int EON = msg.indexOf('-');
  76.             //message getting from client = name-id-request
  77.             // extract the name from the msg
  78.             String name = msg.substring(0, EON);
  79.             //extract id from the msg
  80.             long ID = Long.parseLong(msg.substring(EON+1, EON+9));
  81.  
  82.             //extract request from the msg
  83.             String Request = msg.substring(EON+10, msg.length());
  84.             //JDBC driver name and database URL
  85.             final String JDBC_DRIVER ="";
  86.             final String DATABASE_URL="";
  87.  
  88.             //manage database connection
  89.             Connection DBconnection = null;
  90.             Statement DBstatement = null; // query statement
  91.  
  92.             //connect to the student database and query database
  93.             try {
  94.                 // load database driver class
  95.                 Class.forName (JDBC_DRIVER);
  96.                 //establish connection to database
  97.                 DBconnection = DriverManager.getConnection (DATABASE_URL,"","");
  98.                 //create statement for quering database
  99.                 DBstatement = DBconnection.createStatement();
  100.                  request(Request,name,ID, DBconnection);
  101.             }
  102.             catch (SQLException sqlException){
  103.                 sqlException.printStackTrace();
  104.             }
  105.            finally // close DBstatement and DBconnction
  106.            {
  107.                try 
  108.                { DBstatement.close();
  109.                  DBconnection.close();
  110.            }
  111.                catch (Exception exception)
  112.                { exception.printStackTrace();
  113.         }
  114.            }
  115.         }
  116.  
  117.         public void request ( String R,String N,long id, Connection connection) throws Exception
  118.         {
  119.           //query database
  120.             Statement st = connection.createStatement();
  121.             ResultSet resultset = st.executeQuery("SELECT"+R+"FROM Student-Table WHERE ID="
  122.                     +id+"AND NAME="+N);//select the result according to the name and id of student
  123.                                        // return the result according to the request
  124.             OS.writeObject("NAME:"+N+"-ID:"+id+"-"+R+"is"+resultset+"/n Do you need to get othe information?/n" +
  125.  
  126.                     "send (Y/N) with your request  if Y");//SEND RESULT OF STUDENT REQUEST
  127.             String newR=(String) IS.readObject();//READ THE STUDENT RESPOSE
  128.  
  129.  
  130.             //CHECKING IF CLIENT WANTS TO GET OTHE INFO.
  131.             if (newR.charAt(0)=='y'||newR.charAt(0)=='Y')
  132.             { // extract client request
  133.                 String newReq=newR.substring(2,newR.length());
  134.                 //recursive function...check other request
  135.                 request(newReq,N,id, connection);
  136.             }
  137.  
  138.         }
  139.         }
  140.  
  141.  
  142.  
  143.  
Feb 24 '08 #1
Share this Question
Share on Google+
6 Replies


Dököll
Expert 100+
P: 2,364
I think you English is fine...

Why aren't you using an app server name in the place of your local host name?
Dec 12 '08 #2

10K+
P: 13,264
Not sure what an application server name would have to do with all this.
@Dokoll : Could you please check your PMs and respond appropriately?
Dec 12 '08 #3

Dököll
Expert 100+
P: 2,364
My bad, you're right r035198x, will read carefully. Here's a bit of info I found on the site, perhaps that'll steer OP in the right direction:

Lesson 1: Socket Communications
Jan 6 '09 #4

Expert 10K+
P: 11,448
@Dököll
That online book was written in 1999; it teaches you old Java; I don't think that posting (almost) random Google results here whithout knowing what the subject is all about is a good idea. Please don't do that anymore; there is an up to date link available to the API documentation and the Tutorials in the first article in this group.

kind regards,

Jos (moderator)
Jan 6 '09 #5

hsn
100+
P: 237
hsn
i will respond to what i understood.
don't include a server name in the program, include its ip address, to make sure that it doesn't change later, set the server to a static IP address.

A question, are you trying to create a chatting service? if so, use the Socket class and the ServerSocket class to implement your service.

and read this tutorial, i think it may help.
Lesson 1: Socket Communications

kind regards
hsn
Jan 6 '09 #6

Expert 10K+
P: 11,448
@hsn
Read my reply #5.

kind regards,

Jos
Jan 7 '09 #7

Post your reply

Sign in to post your reply or Sign up for a free account.