Network.java
package talktool.network;
import java.net.*;
/** ネットワークの初期化と管理を行うクラス */
public class Network {
/** NetInfoのオブジェクト */
protected NetInfo info;
/** Communicatorのオブジェクト */
protected Communicator communicator;
/** コンストラクタ */
public Network( NetInfo info ) {
this.info = info;
}
/** ネットワークの初期化を実行する */
public void init() throws Exception {
try {
ServerSocket serverSocket;
Socket socket;
if( info.isServer() ) {
serverSocket
= new ServerSocket( info.getPortNumber() );
System.out.println(
"クライアントの接続を待ちます" );
socket = serverSocket.accept();
String remoteName
= socket.getInetAddress().getHostName();
System.out.println(
remoteName + "と接続しました" );
}
else {
System.out.println( "サーバーに接続します" );
socket
= new Socket( info.getServerName(),
info.getPortNumber() );
}
communicator
= new Communicator( socket );
}
catch( Exception e ) {
throw e;
}
}
/** NetInfoのオブジェクトを返す */
public NetInfo getNetInfo() {
return info;
}
/** Communicatorのオブジェクトを返す */
public Communicator getCommunicator() {
return communicator;
}
}