ServerSocketの使い方
戻る
::::::::::::::
Client.java
::::::::::::::
/**
* $Id: ServerThread.html,v 1.1 2009/06/22 16:11:56 kishi Exp kishi $
*/
import java.net.*;
import java.io.*;
import java.util.*;
public class Client {
public static void main( String[] args ) {
try {
Socket sock = new Socket( "localhost", 54321 );
PrintWriter out = new PrintWriter( sock.getOutputStream(), true );
BufferedReader in = new BufferedReader(
new InputStreamReader(
sock.getInputStream() ) );
out.println( new Date() );
out.flush();
System.out.println( in.readLine() );
out.close();
in.close();
sock.close();
} catch ( IOException e ) {
e.printStackTrace();
}
}
}
::::::::::::::
Server.java
::::::::::::::
import java.io.*;
import java.net.*;
import java.util.*;
/**
* $Id: ServerThread.html,v 1.1 2009/06/22 16:11:56 kishi Exp kishi $
*/
public class Server {
public static void main( String argv[] ) {
try {
//
// create server socket
//
int portNumber = 54321;
ServerSocket serverSocket = new ServerSocket( portNumber );
System.out.println( "server started: portNumber=" + portNumber );
while ( true ) {
try {
Socket sock = serverSocket.accept();
System.out.println( sock.getInetAddress() + " accepted" );
//
// スレッドを生成してデータのやり取りをする
//
new ServerThread( sock );
} catch ( Exception ex ) {
ex.printStackTrace();
}
}
} catch ( IOException e ) {
e.printStackTrace();
}
}
}
::::::::::::::
ServerThread.java
::::::::::::::
import java.io.*;
import java.net.*;
import java.util.*;
/**
* $Id: ServerThread.html,v 1.1 2009/06/22 16:11:56 kishi Exp kishi $
*/
public class ServerThread extends Thread {
private Socket sock = null;
public ServerThread( Socket sock ) {
this.sock = sock;
this.start();
}
public void run() {
try {
PrintWriter out = new PrintWriter( sock.getOutputStream(), true );
BufferedReader in = new BufferedReader(
new InputStreamReader( sock.getInputStream() ) );
String inputLine;
while ( ( inputLine = in.readLine() ) != null ) {
System.out.println( "request: " + inputLine );
out.println( "WELCOME: " + + sock.hashCode() );
}
in.close();
out.close();
sock.close();
} catch ( Exception e ) {
try {
sock.close();
} catch ( Exception ex ) {
e.printStackTrace();
}
}
}
}
■実行結果
$ java -cp . Server
server started: portNumber=54321
/127.0.0.1 accepted
request: Fri May 12 10:30:30 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:31 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:31 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:31 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:32 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:32 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:32 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:33 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:33 JST 2006
/127.0.0.1 accepted
request: Fri May 12 10:30:33 JST 2006
$ for i in `seq 1 10`; do java -cp . Client; done
WELCOME: 4384790
WELCOME: 9634993
WELCOME: 1641745
WELCOME: 11077203
WELCOME: 14576877
WELCOME: 33263331
WELCOME: 6413875
WELCOME: 21174459
WELCOME: 827574
WELCOME: 17510567
戻る