0

Hello, I have an error on my program, after hours of trial and error I couldn't fix it. I am trying to build a simple server which needs to have threads so more than 1 connection can take place. I don't know if I am doing the threads right, I also get an error on serve.start(); Line 23 compiler says method undefined but I am trying to start a thread.

Any help would be great!

import java.io.*;
import java.net.*;
import java.util.Scanner;
public class EchoServer 
{
	public static void main(String[] args) 
	{
		ServerSocket serverSock = null;
		Socket connSock = null;
		SecondThread serve = null;
		if( args.length != 1 ) 
		{
			System.out.println("Usage: Server port");
			System.exit(1);
		}
		try 
		{
			serverSock = new ServerSocket(Integer.parseInt(args[0]));
			while(true) 
			{
				connSock = serverSock.accept();
				serve = new SecondThread(connSock);
				serve.start();
			}
		} 
		catch (IOException e) 
		{
			System.err.println("Server: error on socket");
			System.exit(1);
		}
	}
}

class SecondThread extends Thread
{
	Socket conn = null;
	public SecondThread(Socket c) { conn = c; }
	public void run()
	{
		while(true)
		{
			Scanner scanConnection = new Scanner(conn.getInputStream());
			String lineString = null;
			int lineCount = 0;
			String buf[] = new String[32];
			String reply = "HTTP/1.0 404 Not Found\r\n" +
						"Connection: close\r\n" +
						"Content-Type: text/html\r\n" +
						"\r\n" +
						"<h1>Sorry, work in progress</h1>\r\n";

			String reply2 = "HTTP/1.0 200 OK\r\n" +
                     "Connection: close\r\n" +
                     "Content-Type: text/html\r\n" +
                     "\r\n" ;
			OutputStream outsConnection = conn.getOutputStream();
			byte pagebuff[] = new byte[100];

			while (true)
			{
				lineString = scanConnection.nextLine();
				if(lineString.length()==0) break;
				buf[lineCount] = lineString;
				lineCount = lineCount + 1;
			}

				for(int resfile = 0; resfile < lineCount; resfile++)
				{
					//System.out.println(buf[i]);
				}
				String too = buf[128];
				Scanner scans = new Scanner(too);
				String command = scans.next();
				String resource = "http" + scans.next();
				String fileName = resource;
				//System.out.println(fileName);
				File resfile = new File(fileName);

				if(!resfile.exists())
				{
					outsConnection.write(reply.getBytes());
				}
				else
				{
					InputStream ins = new FileInputStream(fileName);
					outsConnection.write(reply2.getBytes());

					while(true)
					{

						int rc = ins.read(pagebuff, 0, 100);
						if(rc <= 0)break;
						outsConnection.write(pagebuff, 0, rc);
					}
				}
				conn.close();
		}
	}
}

Edited by 9w43: n/a

2
Contributors
1
Reply
3
Views
6 Years
Discussion Span
Last Post by masijade
0

Are you maybe ignoring compiler messages? Because your "SecondThread" class has all sorts of "Unhandled Exception IOException" errors, so it never gets compiled, so the method is "undefined" when trying to compile the other class since "SecondThread" is never fully defined, since it hasn't, and can't, compile.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.