Java中socket接口调用

最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方。在贴代码之前,还是要了解一下关于socket的基础知识。

Socket的基本概念

1.建立连接

当需要建立网络连接时,必须有一台机器运行一个程序,随时等候连接,而另一端的程序这对其发出连接请求。这一点同电话系统类似——必须有一方拨打电话,而另一方必须等候电话连通。

建立连接的过程为:

(1)先在服务器端生成一个ServerSocket实例对象,随时监听客户端的连接请求。

(2)当客户端需要连接服务端时,相应地要生成一个Socket实例对象,并发出连接请求,其中host参数指明该主机名,port参数指明该主机端口号。

(3)服务器端通过accept()方法接收到客户端的请求后,开辟一个接口与之进行连接,并生成所需的I/O数据流。

(4)客户端和服务器端的通信都是通过一对InputStream和OutputStream进行的,通信结束后,两端分别关闭对应的Socket接口。

2.连接地址

打电话时,呼叫方必须事先知道所需拨打的号码,而程序建立网络连接时,也同样需要知道地址或主机名称。

另外,网络连接还需要一个端口号(可以将其当作电话的分机号),连接到正确的主机之后,需要对该连接确认特定口令。

3.端口号

在TCP/IP系统中,端口号由16位二进制整数组成,即在0-65535之间。实际应用中,前1024个端口号已经预先定义为一些特定服务,因此一般不能使用,除非想同这些服务器进行连接(如Telnet,SMTP,mail,ftp等)。在两个程序连接之前,彼此之间必须达成一致,即由客户端负责初始化连接,而服务器随时等候请求。只有客户端和服务器端指定端口号一致时连接才会建立。如果系统中两个程序所用端口号不一致,这连接无法建立。

4.网络连接模式

在Java中,TCP/IP接口的连接是由java.net包中的类实现的。如图表示的是Socket连接过程中客户端和服务器端的工作原理。

                       

每个server端都拥有一个端口号,一台机器上如果运行多个服务,这可能对应多个端口号。通信结束后,两端分别关闭对应的Socket接口,而不影响其他的端口。

Socket通信的基本步骤

使用Socket方式进行网络通信的程序基本结构都是类似的,无论一个Socket通信程序的功能多么齐全、程序多么复杂,其基本结构都是一样的。客户端与服务器端进行

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值