java socket 银行_银行前置机程序(通信部分socket,java编写 )

本文介绍了一个基于Java的银行前置机程序,详细阐述了如何使用Socket进行通信,包括连接服务器、发送和接收数据的方法。代码示例展示了客户端的Socket连接、发送消息、接收消息以及异常处理的过程。
摘要由CSDN通过智能技术生成

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

* :为向服务器发起连接的超时时间

*

* errorSnd:为发送期间可能出现异常的对象,一旦发生异常,完善异常对象信息然后抛出

*

* @return 没有返回值的内容

* @throws ErrorExcp

*

* @exception ErrorSend

* 抛出一个发送数据的异常

*/

public void conncet() throws ErrorExcp

{

try {

/**

* 从程序全局配置参数取出地址(地址,连接超时时间)

*/

ncpClient.connect(ParameterCfg.bankAdreess,

ParameterCfg.conncetTime);

} catch (IllegalArgumentException e) {

ErrorExcp error = new ErrorExcp(2, 1, 3, 301, "conncet");

throw error;

} catch (UnknownHostException e) {

ErrorExcp error = new ErrorExcp(2, 1, 3, 302, "conncet");

throw error;

} catch (IllegalBlockingModeException e) {

ErrorExcp error = new ErrorExcp(2, 1, 3, 303, "conncet");

throw error;

} catch (SocketTimeo

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值