2009年10月31日 星期六 15:32
package Client;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.nio.channels.IllegalBlockingModeException;
import Config.ParameterCfg;
import ErrorExcp.ErrorExcp;
import Log.Log;
import Msg.Msg.Msg;
import MsgCfg.MsgGlobalInfo;
/**
*
* @author xiehui 通信类,数据的发送与接受
*
*/
public class Client {
/**
* 负责数据发送与接受的套接字
*/
public Socket ncpClient;
/**
* socket读取数据管道
*/
public OutputStream writeIO;
/**
* socket写数据管道
*/
public InputStream receiveIO;
/**
*日志记录
*/
public Log log;
/**
* 是否做了资源释放,避免二次释放引起bug,默认为假
*/
public boolean isCloseDeal = false;
/**
* 在套接字上获取的报文信息
*/
public MsgInfo msgInfo;
/**
* Client()函数为构造函数
*
* @param acccpetSocket
* :为服务器投递过来的套接字
*
* log:为传递的日志对象,方便在通信的过程中将状态记录下来
*
* @return 没有返回值的内容
*
* @exception exceptions
* 没有异常被抛出
*/
public Client(Socket acccpetSocket, Log log) {
/**
* 套接字本地创建的,发起方是农产品前置机
*/
this.ncpClient = acccpetSocket;
this.log = log;
msgInfo = new MsgInfo();
/**
* 将发起的IP地址写入日志
*/
log.add(acccpetSocket.getRemoteSocketAddress());
}
/**
* 向服务器建立连接
*
* @param seconds
* :为向服务器发起连接的超时时间
*
*