関連:クライアントプログラムサンプル
import java.io.*;
import java.net.*;
/**
* サーバクラス
*
* @author
* @version 1.0
*/
public class Sv {
static final String strHowTo = "help: java Sv port";
/**
* スタートアップ
*/
public static void main(String[] args) {
// 引数チェック
if (args.length != 1) {
System.err.println( strHowTo );
return;
}
try {
// サーバソケットの作成
ServerSocket svsock = new ServerSocket(Integer.parseInt(args[0]));
svsock.setSoTimeout( 1000 );
int nCnt = 0;
// メインルーチン
Socket sock = null;
for (;;) {
// 終了判定
// if ( nCnt > 5 ) {
// break;
// }
// クライアントからの接続を受け付ける。
try {
sock = svsock.accept();
}
catch( SocketTimeoutException e ) {
continue;
}
nCnt++;
sock.setTcpNoDelay( true );
System.out.println("accept");
// クライアントとの入出力部分はスレッドとして起動する。
new ThreadCmdRes( sock ).start();
System.out.println("Waiting for New Connection...");
}
}
catch( SocketException e ) {
System.err.println("Socket Error!");
e.printStackTrace();
}
catch( IOException e ) {
System.err.println("IO Error!");
e.printStackTrace();
}
catch (Exception e) {
System.err.println("Error!");
e.printStackTrace();
}
}
}
/**
* コマレス処理スレッドクラス
*
* @author
* @version 1.0
*/
class ThreadCmdRes extends Thread {
private Socket socket = null;
/**
* コンストラクタ
* @param sock クライアントと接続済みのソケットを渡す。
*/
public ThreadCmdRes(Socket sock) {
this.socket = sock;
}
/**
* ファイナライザ
* 念のためソケットの破棄を行っている。
*/
protected void finalize() {
try {
socket.close();
} catch (Exception e) {}
}
public void run() {
try {
// 文字列受信処理
InputStream is = socket.getInputStream();
BufferedReader bufreader
= new BufferedReader(
new InputStreamReader( is ) );
System.out.println("入力ストリーム取得");
// 入力されるまで待つ
while ( is.available() == 0 ) {
Thread.sleep( 10 );
continue;
}
String line = null;
line = bufreader.readLine();
System.out.println( line );
System.out.println("文字列受信処理");
// メッセージ送信
BufferedWriter bufwriter
= new BufferedWriter(
new OutputStreamWriter( socket.getOutputStream() ) );
bufwriter.write( "Send sv -> cl" );
bufwriter.newLine();
bufwriter.flush();
System.out.println( "文字列送信処理" );
// 後処理
bufreader.close();
bufwriter.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
関連:サーバプログラムサンプル
import java.io.*;
import java.net.*;
/**
* クライアントクラス
*
* @author
* @version 1.0
*/
public class Cl {
static final String strHowTo = "help: java Cl host port";
/**
* スタートアップ
*/
public static void main(String[] args) {
// 引数チェック
if (args.length != 2) {
System.err.println( strHowTo );
return;
}
try {
// ソケットを作成してサーバに接続する。
Socket socket = null;
try {
socket = new Socket(args[0], Integer.parseInt(args[1]));
} catch (ConnectException e) {
System.out.println("connectできませんでした");
return;
}
System.out.println("socket生成");
socket.setTcpNoDelay(true);
// メッセージ送信
BufferedWriter bufwriter = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
bufwriter.write("Send cl -> sv");
bufwriter.newLine();
bufwriter.flush();
System.out.println("文字列送信処理");
// 文字列受信処理
InputStream is = socket.getInputStream();
BufferedReader bufreader
= new BufferedReader(
new InputStreamReader(is));
System.out.println("入力ストリーム取得");
// 入力されるまで待つ
while (is.available() == 0) {
Thread.sleep(10);
continue;
}
String line = null;
line = bufreader.readLine();
System.out.println(line);
System.out.println("文字列受信処理");
// 後処理
bufreader.close();
bufwriter.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
javaでプロパティファイルを読み込む処理です。
import java.util.Properties;
import java.util.Enumeration;
import java.io.*;
public class Main {
public static void main( String[] strArg ) {
try {
Properties prop = new Properties();
Reader r = new InputStreamReader(Main.class.getResourceAsStream("setting.properties"));
prop.load( r );
// キー一覧表示
Enumeration e = prop.propertyNames();
while( e.hasMoreElements()) {
System.out.println( "キー:" + e.nextElement());
}
// キーに対応した値表示
System.out.println( "キー:" + prop.getProperty("123"));
System.out.println( "キー:" + prop.getProperty("456"));
System.out.println( "キー:" + prop.getProperty("789"));
} catch (Exception e) {
System.out.println("Exception:" + e);
}
return;
}
void Main() {
}
}
setting.propatiesの内容
123 = 11111
456 = 22222
789 = 33333