public void run()
	{
		// システム情報取得
		String str = System.getProperty("os.name");
		mOSName = str;
		str = System.getProperty("os.arch");
		mOSArch = str;
		str = System.getProperty("os.version");
		mOSVersion = str;
		str = System.getProperty("user.name");
		mUserName = str;
		
		DebugLog("user name:" + str);
		DebugLog("os name:" + str);
		DebugLog("os arch:" + str);
		DebugLog("os version:" + str);
		
		try
		{
			InetAddress addr = InetAddress.getLocalHost();
			mHostName = addr.getHostName();

			DebugLog("host name:" + addr.getHostName());
			DebugLog("host ip:" + addr.getHostAddress());
		}
		catch (Exception e) 
		{
			e.printStackTrace();
		}
		
		try {
	        mDgSocket = new DatagramSocket(mPortNum);

	        byte buffer[] = new byte[1024];
	        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

	        while (!mHalt) {
	            mDgSocket.receive(packet);

	            String rcvMsg = new String(packet.getData(),0, packet.getLength());
	            DebugLog( rcvMsg );
	            DebugLog( ": " + new Date() );
	            DebugLog( packet.getAddress().toString() );
	        	
				mIP = packet.getAddress().toString();

				if( mIP.charAt(0) == '/' )
				{
					mIP = mIP.substring( 1, mIP.length());
				}
				boolean addIp = mMultiTouchServer.noticeIpAddress( mIP );
				if( addIp == true )
				{
//					mClipThread.setIpList( mMultiTouchServer.mIpList );
				}

				/*
				SendThread sThread = new SendThread( mIP, mPortNum, "/hostname:" + mHostName + " " );
				sThread.start();
				*/

				char wk = ' ';
				String command = "";
				for( int i = 0; i< rcvMsg.length(); ++i )
				{
					wk = rcvMsg.charAt(i);
					if( wk == ' ' )
					{
						// コマンドの区切り文字。
						// コマンド実行。
						ParthCommand(command);
						command = "";
					}
					else
					{
						command += wk;
					}
				}
	        }
		}
		catch (IOException e) {
			e.printStackTrace();
		}
		
	}// end of run()