aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/test/java.net/ClientSocket.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/test/java.net/ClientSocket.java')
-rw-r--r--libjava/classpath/test/java.net/ClientSocket.java189
1 files changed, 189 insertions, 0 deletions
diff --git a/libjava/classpath/test/java.net/ClientSocket.java b/libjava/classpath/test/java.net/ClientSocket.java
new file mode 100644
index 0000000..53a498b
--- /dev/null
+++ b/libjava/classpath/test/java.net/ClientSocket.java
@@ -0,0 +1,189 @@
+/* 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");
+}
+
+}
+