⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 receivemsg.java

📁 apache.mina网络开源框架的例子
💻 JAVA
字号:
package com.yidatone.sms.mina.mccenter;

import java.io.File;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;

import org.apache.log4j.Logger;


public class ReceiveMsg
{
	Logger logger=Logger.getLogger(getClass());
	public void GetFileContent(Object message)
	{
		logger.info("[receive MO msg]:"+message);
		String resultMsg=String.valueOf(message);
		if(resultMsg.equalsIgnoreCase("0") || resultMsg.equalsIgnoreCase(""))
		{
			logger.info("message deliver");
		}
		else
		{
			String[] msgContentArray=this.parserRecv(String.valueOf(message));
			if (msgContentArray != null) 
			{
				try 
				{
					this.WriteFile(msgContentArray);
				}
				catch (Exception ex) 
				{
					logger.error("[ReceiveMsg->GetFileContent->]:"+ex);
					return;
				}
			}
		}
	}
	
	/**
	 * 解析接受消息
	 * @param recvMsg 发送消息的字符串
	 * @return S
	 * @author Gabriel
	 */
	synchronized public String[] parserRecv(String recvMsg) 
	{
		String[] result = null;
		//logger.info("the message before parserRecv--->"+recvMsg);
		String[] recv_Enter_First = recvMsg.split("\n");
		
		if (recv_Enter_First.length < 2)
			return result;
		String recvInfo = recv_Enter_First[0];
		String reg = " ";
		
		String[] recv_KONGGE_Second = recvInfo.split(reg);
		
		if (!recv_KONGGE_Second[0].trim().equals("0"))
			return result;
		int Secondarraylength = recv_KONGGE_Second.length;
		
		result = new String[Secondarraylength];
		for (int i = 0; i < (Secondarraylength - 1); i++) 
		{
			String temp = recv_KONGGE_Second[ (i + 1)].replaceAll("\"", reg).trim();
			result[i] = temp;
		}
		result[Secondarraylength - 1] = recv_Enter_First[1];
		return result;
	}
	
	synchronized public void WriteFile (String [] msgContentArray)
	{
		try
		{
			File dir = (File) Client.moDirs.get( (int) (Client.moDirs.size() *Math.random()));
			
			long nowtime = System.currentTimeMillis();
			File path = new File(dir.getPath() + "/" + msgContentArray[0] + "MO" + String.valueOf(nowtime));
			FileOutputStream fos = new FileOutputStream(path);
			FileChannel fc = fos.getChannel();
			FileLock fLock = fc.lock(0, 1000, false);
			ByteBuffer out = ByteBuffer.allocate(1000);
			for (int i = 0; i < msgContentArray.length; i++) 
			{
				out.put(msgContentArray[i].getBytes()).put("\n".getBytes());
			}
			out.flip();
			fc.write(out);
			fLock.release();
			fc.close();
			fos.close();
		}
		catch(Exception ex)
		{
			logger.error("[Receivemsg->WriteFile->]:"+ex);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -