Java编程那些事儿103——网络编程技术2[Java编程]
本文“Java编程那些事儿103——网络编程技术2[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
13.2.3 TCP编程
按照前面的介绍,网络通讯的方法有TCP和UDP两种,此中TCP方法的网络通讯是指在通讯的历程中保持衔接,有点近似于打电话,只需求拨打一次号码(成立一次网络衔接),便可以多次通话(多次传输数据).这样方法在实际的网络编程中,由于传输坚固,近似于打电话,假如甲给乙打电话,乙说没有听清楚让甲反复一遍,直到乙听清楚为止,实际的网络传输也是这样,假如发送的一方发送的数据接纳方认为有问题,则网络底层会自动要求发送方重发,直到接纳方收到为止.
在Java语言中,关于TCP方法的网络编程供应了杰出的支持,在实际实现时,以java.net.Socket类代表客户端衔接,以java.net.ServerSocket类代表服务器端衔接.在举行网络编程时,底层网络通讯的细节已经实现了对比高的封装,所以在程序员实际编程时,只需求指定IP地址和端口号码便可以成立衔接了.恰是由于这种高度的封装,一方面简化了Java语言网络编程的难度,别的也使得利用Java语言举行网络编程时无法深化到网络的底层,所以利用Java语言举行网络底层系统编程很艰难,具体点说,Java语言无法实现底层的网络嗅探以及得到IP包构造等信息.但是由于Java语言的网络编程对比简单,所以还是得到了遍及的利用.
在利用TCP方法举行网络编程时,需求按照前面介绍的网络编程的步骤举行,下面辨别介绍一下在Java语言中客户端和服务器端的实现步骤.
在客户端网络编程中,首先需求成立衔接,在Java API中以java.net.Socket类的对象代表网络衔接,所以成立客户端网络衔接,也就是成立Socket范例的对象,该对象代表网络衔接,示比方下:
Socket socket1 = new Socket(“192.168.1.103”,10000);
Socket socket2 = new Socket(“www.sohu.com”,80);
上面的代码中,socket1实现的是衔接到IP地址是192.168.1.103的计算机的10000号端口,而socket2实现的是衔接到域名是www.sohu.com的计算机的80号端口,至于底层网络若何实现成立衔接,关于程序员来说是完好透明的.假如成立衔接时,本机网络不通,或服务器端程序未开启,则会抛出非常.
衔接一旦成立,则完成了客户端编程的第一步,紧接着的步骤就是按照“恳求-呼应”模子举行网络数据交换,在Java语言中,数据传输功效由Java IO实现,也就是说只需求从衔接中得到输入流和输出流便可,然后将需求发送的数据写入衔接对象的输出流中,在发送完成今后从输入流中读取数据便可.示例代码以下:
OutputStream os = socket1.getOutputStream(); //得到输出流
InputStream is = socket1.getInputStream(); //得到输入流
上面的代码中,辨别从socket1这个衔接对象得到了输出流和输入流对象,在整个网络编程中,后续的数据交换就变成了IO操作,也就是遵守“恳求-呼应”模子的规定,先向输出流中写入数据,这些数据会被系统发送出去,然后在从输入流中读取服务器端的反馈信息,这样就完成了一次数据交换历程,当然这个数据交换历程可以多次举行.
这里得到的只是最基本的输出流和输入流对象,还可以按照前面学习到的IO知识,利用流的嵌套将这些获得到的基本流对象转换成需求的装潢流对象,从而便利数据的操作.
最后当数据交换完成今后,关闭网络衔接,释放网络衔接占用的系统端口和内存等资源,完成网络操作,示例代码以下:
socket1.close();
以上是“Java编程那些事儿103——网络编程技术2[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |