gcc/libjava/classpath/test/java.net/ClientSocket.java
Tom Tromey f911ba985a Initial revision
From-SVN: r102074
2005-07-16 00:30:23 +00:00

189 lines
5.5 KiB
Java

/* A class to test my client TCP socket implementation */
import java.net.*;
import java.io.*;
public class ClientSocket extends Object
{
public static void
main(String[] argv) throws IOException
{
System.out.println("Starting client stream socket test");
/* Simple connection and read test */
System.out.println("Test 1: Connection to daytime port on local host");
try
{
InetAddress addr = InetAddress.getByName("127.0.0.1");
Socket s = new Socket(addr, 13);
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
for (String str = br.readLine(); ; str = br.readLine())
{
if (str == null)
break;
System.out.println(str);
}
s.close();
System.out.println("PASSED: daytime test");
}
catch(IOException e)
{
System.out.println("FAILED: daytime test: " + e);
}
/* Simple connection refused test */
System.out.println("Test 2: Connection refused test");
try
{
InetAddress addr = InetAddress.getByName("127.0.0.1");
Socket s = new Socket(addr, 47);
s.close();
System.out.print("WARNING: Cannot perform connection refused test");
System.out.println(" because someone is listening on localhost:47");
}
catch(IOException e)
{
System.out.println("PASSED: connection refused test: " + e.getMessage());
}
/* Socket attributes test */
System.out.println("Test 3: Connection attributes");
try
{
Socket s = new Socket("www.netscape.com", 80);
String laddr = s.getLocalAddress().getHostName();
int lport = s.getLocalPort();
String raddr = s.getInetAddress().getHostName();
int rport = s.getPort();
System.out.println("Local Address is: " + laddr);
System.out.println("Local Port is: " + lport);
System.out.println("Remote Address is: " + raddr);
System.out.println("Remote Port is: " + rport);
System.out.println("Socket.toString is: " + s);
if ( (laddr == null) ||
((lport < 0) || (lport > 65535)) ||
(raddr.indexOf("netscape.com") == -1) ||
(rport != 80))
System.out.println("FAILED: connection attribute test");
else
System.out.println("PASSED: connection attribute test");
s.close();
}
catch(IOException e)
{
System.out.println("FAILED: connection attributes test: " + e.getMessage());
}
/* Socket options test */
System.out.println("Test 4: Socket options");
Socket s = new Socket("127.0.0.1", 23);
try
{
// SO_TIMEOUT
System.out.println("SO_TIMEOUT = " + s.getSoTimeout());
System.out.println("Setting SO_TIMEOUT to 142");
s.setSoTimeout(142);
System.out.println("SO_TIMEOUT = " + s.getSoTimeout());
System.out.println("Setting SO_TIMEOUT to 0");
s.setSoTimeout(0);
System.out.println("SO_TIMEOUT = " + s.getSoTimeout());
}
catch (IOException e)
{
System.out.println("WARNING: SO_TIMEOUT problem: " + e.getMessage());
System.out.println("This is ok on Linux");
}
try
{
// Try TCP_NODELAY
System.out.println("TCP_NODELAY = " + s.getTcpNoDelay());
System.out.println("Setting TCP_NODELAY to true");
s.setTcpNoDelay(true);
System.out.println("TCP_NODELAY = " + s.getTcpNoDelay());
System.out.println("Setting TCP_NODELAY to false");
s.setTcpNoDelay(false);
System.out.println("TCP_NODELAY = " + s.getTcpNoDelay());
// Try SO_LINGER
System.out.println("SO_LINGER = " + s.getSoLinger());
System.out.println("Setting SO_LINGER to 100");
s.setSoLinger(true, 100);
System.out.println("SO_LINGER = " + s.getSoLinger());
System.out.println("Setting SO_LINGER to off");
s.setSoLinger(false, 0);
System.out.println("SO_LINGER = " + s.getSoLinger());
System.out.println("PASSED: socket options test");
}
catch(IOException e)
{
System.out.println("FAILED: socket options test: " + e.getMessage());
}
s.close();
/* Simple read/write test */
System.out.println("Test 5: Simple read/write test");
try
{
System.out.println("Downloading the Transmeta homepage");
s = new Socket("www.transmeta.com", 80);
BufferedReader in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(new
OutputStreamWriter(s.getOutputStream()));
out.print("GET /\r\n");
out.flush();
for (String str = in.readLine(); ; str = in.readLine())
{
if (str == null)
break;
System.out.println(str);
}
s.close();
System.out.println("PASSED: simple read/write test");
}
catch(IOException e)
{
System.out.println("FAILED: simple read/write test: " + e.getMessage());
}
/* Connect to our server socket */
System.out.println("Test 6: Connect to ServerSocket");
try
{
s = new Socket("localhost", 9999);
PrintWriter out = new PrintWriter(new
OutputStreamWriter(s.getOutputStream()));
out.println("Hello, there server socket");
out.print("I'm dun");
out.flush();
s.close();
System.out.println("PASSED: connect to server socket");
}
catch(Exception e)
{
System.out.println("FAILED: connect to server socket: " + e);
}
System.out.println("Client stream socket test complete");
}
}