DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

+ Reply to Thread
Results 1 to 3 of 3

Thread: TCP programming

  1. #1
    Join Date
    Jan 2006
    Posts
    1

    TCP programming

    Hi,

    I have built this TCP Client Server pair that are supposed to communicate with each other by sending messages back and forth 1000 times. The problem that I have at the moment is that when I run TCPClient2.java, I get an error message telling me that it can not locate the host. Please see my code below. Thanks a lot.

    Code:
    TCPServerThread2.java:
    
    import java.io.*;
    import java.net.*;
    
    public class TCPServerThread2 extends Thread{
        int n=10;
        private Socket s=null; //this is the client socket which is created when the client connects server
        private String st=new String();
        private char[] arr=new char[n];
    
        public TCPServerThread2(Socket s){
            super("TCPServerThread");
            this.s=s;
        }
    
        public void run(){
            //String i, o;
            try{
                PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
                BufferedReader br = new BufferedReader(new InputStreamReader(s.
                        getInputStream()));
    
                st=br.readLine();
                for(int i=0; i<n; i++){		//the receiver receives the message, copies into array
                  arr[i]=st.charAt(i);
                }
                pw.write(arr);					//the receiver sends message back to sender
    
                pw.close();
                br.close();
                s.close();
            }
    
            catch(IOException e){}
    
        }
    }
    
    
    TCPClient2.java:
    
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.lang.*;
    
    public class TCPClient2{
      public static void main(String[] args) throws IOException{
        Socket socket=null;
        PrintWriter pw=null;
        BufferedReader br=null;
        int n=10;
        long time1, time2, ETE, sumETE, avgETE, maxETE;
        sumETE=0;
        char[] ca=new char[n];
        double[] maxETEa=new double[n];
        Date d=new Date();
    
        try{
          socket=new Socket("192.168.0.101", 8777);
          pw=new PrintWriter(socket.getOutputStream(), true);
          br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        }
        catch(UnknownHostException e){
          System.err.println("Can not locate host");
          System.exit(1);
        }
        catch(IOException e){
          System.err.println("Could not establish IO with IPName");
          System.exit(1);
        }
    
    	for(int i=0;i<n; i++){	//create the n character string
    		ca[i]=' ';		
    	}
    	
        for(int i=0; i<1000; i++){
          time1 = d.getTime();			//the sender records the current time before sending a message
          pw.print(ca);		            //send n character string to server
          br.read(ca);					//receive n character string from the server
          time2 = d.getTime();
          ETE = (time2 - time1) / 2;	//End to End Delay calculation
          maxETEa[i]=(double)ETE;
          sumETE=sumETE+ETE;			
          System.out.println("iteration "+i+": ETE="+ETE);
        }
    	 
        Arrays.sort(maxETEa);	//sort the elements of maxETEa array in ascending order
    
        avgETE=sumETE/1000;
        System.out.println("The maximum ETE is: "+maxETEa[999]); //the last element contains the maximum ETE
        System.out.println("The average ETE is: "+avgETE);
    
    //  Sorting algorithm for maxETE
    
        socket.close();
        br.close();
        pw.close();    
      }
    } 
    
    
    TCPServer2.java:
    
    
    import java.io.*;
    import java.net.*;
    
    public class TCPServer2{
     public static void main(String[] args) throws IOException{
      ServerSocket ss=null;
    
      try{
        ss=new ServerSocket(8777);
      }
      catch(IOException e){
        System.err.println("Could not listen on port 8777");
        System.exit(-1);
      }
    
      Socket client=null;
    
      
    		while(true){
    		
             try {
                new TCPServerThread(ss.accept()).start();
            } catch (IOException e) {
                System.err.println("Could not connect to client on port 8777");
                //System.exit(-1);
            }
    
             //new TCPServerThread(client).start();       
             ss.close();
         }
    		
        }
    }

  2. #2
    Join Date
    Jun 2004
    Posts
    199
    Where is the code to run TCPServerThread2 ?

  3. #3
    Join Date
    Oct 2005
    Posts
    107
    socket=new Socket("192.168.0.101", 8777);

    if there on the same machine use "localhost"

    also the server thread only echos the message once before closing the socket, so I don't think the 1000 echos will work...
    Last edited by Joe Beam; 01-11-2006 at 02:16 PM.

Similar Threads

  1. How can I get a programming job?
    By scott in forum Careers
    Replies: 5
    Last Post: 01-25-2008, 01:40 PM
  2. initial Java programming
    By Kallahan in forum Java
    Replies: 1
    Last Post: 01-20-2003, 08:28 AM
  3. Wireless Profoled TCP support
    By Mikael Nyberg in forum Mobile
    Replies: 0
    Last Post: 06-26-2001, 04:30 AM
  4. Outsource your Java & C++ programming to Novosoft!
    By Novosoft in forum web.announcements
    Replies: 0
    Last Post: 02-14-2001, 03:50 AM
  5. Replies: 1
    Last Post: 04-10-2000, 12:27 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


Top DevX Stories

Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL


Sponsored Links