第十周学习总结

学号20145332 《Java程序设计》第十周学习总结

网络编程

网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据。程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴。在发送和接收数据时,大部分的程序设计语言都设计了专门的API实现这些功能,程序员只需要调用即可。

网络概述

网络编程技术是当前一种主流的编程技术,随着联网趋势的逐步增强以及网络应用程序的大量出现,所以在实际的开发中网络编程技术获得了大量的使用。

一、计算机网络概述
按照计算机网络的定义,通过一定的物理设备将处于不同位置的计算机连接起来组成的网络,这个网络中包含的设备有:计算机、路由器、交换机等等。路由器和交换机组成了核心的计算机网络,网络最主要的优势在于共享:共享设备和数据,共享数据就是将大量的数据存储在一组机器中,其它的计算机通过网络访问这些数据。
为了能够方便的识别网络上的每个设备,网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址。但是由于IP地址不容易记忆,所以为了方便记忆,有创造了另外一个概念——域名。为了让一个计算机可以同时运行多个网络程序,就引入了另外一个概念——端口(port)。有了IP地址和端口的概念以后,在进行网络通讯交换时,就可以通过IP地址查找到该台计算机,然后通过端口标识这台计算机上的一个唯一的程序。这样就可以进行网络数据的交换了。

二、网络编程概述
网络编程就是两个或多个程序之间的数据交换,和普通的单机程序相比,网络程序最大的不同就是需要交换数据的程序运行在不同的计算机上,这样就造成了数据交换的复杂。在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序,简称客户端,而在第一次通讯中等待连接的程序被称作服务器端(Server)程序,简称服务器。结构有C/S结构、B/S结构。P2P程序是一种特殊的程序,应该一个P2P程序中既包含客户端程序,也包含服务器端程序。在实际进行数据交换时,为了让接收端理解该数据,计算机比较笨,什么都不懂的,那么就需要规定该数据的格式,这个数据的格式就是协议。

三、网络通讯方式
在现有的网络中,网络通讯的方式主要有两种:
1、 TCP(传输控制协议)方式
2、 UDP(用户数据报协议)方式

网络编程技术

一、网络编程步骤
1、客户端网络编程步骤:
①建立网络连接:客户端网络编程的第一步都是建立网络连接。在建立网络连接时需要指定连接到的服务器的IP地址和端口号,建立完成以后,会形成一条虚拟的连接,后续的操作就可以通过该连接实现数据交换了。
②交换数据:连接建立以后,就可以通过这个连接交换数据了。交换数据严格按照请求响应模型进行,由客户端发送一个请求数据到服务器,服务器反馈一个响应数据给客户端,如果客户端不发送请求则服务器端就不响应。
③关闭网络连接:在数据交换完成以后,关闭网络连接,释放程序占用的端口、内存等系统资源,结束网络编程。
2、服务器端网络编程步骤:
①监听端口:服务器端属于被动等待连接,所以服务器端启动以后,不需要发起连接,而只需要监听本地计算机的某个固定端口即可。
②获得连接:当客户端连接到服务器端时,服务器端就可以获得一个连接,这个连接包含客户端的信息,例如客户端IP地址等等,服务器端和客户端也通过该连接进行数据交换。
③交换数据:服务器端通过获得的连接进行数据交换。服务器端的数据交换步骤是首先接收客户端发送过来的数据,然后进行逻辑处理,再把处理以后的结果数据发送给客户端。简单来说,就是先接收再发送,这个和客户端的数据交换数序不同。
④关闭连接:当服务器程序关闭时,需要关闭服务器端,通过关闭服务器端使得服务器监听的端口以及占用的内存可以释放出来,实现了连接的关闭。

3、小结

二、Java网络编程技术
Java语言虽然不能说是对于网络编程的支持最好的语言,但是必须说是一种对于网络编程提供良好支持的语言

三、TCP编程
在Java语言中,对于TCP方式的网络编程提供了良好的支持,在实际实现时,以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。在进行网络编程时,底层网络通讯的细节已经实现了比较高的封装,所以在程序员实际编程时,只需要指定IP地址和端口号码就可以建立连接了。
Java语言中客户端的实现步骤:
①建立连接:
Socket socket1 = new Socket(“192.168.1.103”,10000);
Socket socket2 = new Socket(“www.sohu.com”,80);
②数据交换:
OutputStream os = socket1.getOutputStream();
InputStream is = socket1.getInputStream();
③关闭网络连接:
socket1.close();

 Java语言中服务器端的实现步骤:
   ①监听端口:
             ServerSocket ss = new ServerSocket(10000);
   ②获得连接:
             Socket socket = ss.accept();
   ③数据交换:
            socket = serverSocket.accept(); 
            is = socket.getInputStream();
   ④关闭网络连接:
            ss.close();

四、UDP编程
UDP方式的网络编程也在Java语言中获得了良好的支持,由于其在传输数据的过程中不需要建立专用的连接等特点,所以在Java API中设计的实现结构和TCP方式不太一样。当然,需要使用的类还是包含在java.net包中。
Java语言中客户端的实现步骤:
①建立连接:
DatagramSocket ds = new DatagramSocket();
②数据交换:
String s = “Hello”;
String host = “127.0.0.1”;
int port = 10001;
byte[] b = s.getBytes();
InetAddress server = InetAddress.getByName(host);
DatagramPacket sendDp = new DatagramPacket(b,b.length,server,port);
ds.send(sendDp);
byte[] data = new byte[1024];
DatagramPacket received = new DatagramPacket(data,data.length);
ds.receive(receiveDp);
byte[] b = receiveDp.getData();
int len = receiveDp.getLength();
String s = new String(b,0,len);
System.out.println(s);
③关闭网络连接:
ds.close();
Java语言中服务器端的实现步骤:
①监听端口:
DatagramSocket ds = new DatagramSocket(10010);
②数据交换:同客户端,发送时需要端口号
InetAddress clientIP = receiveDp.getAddress();
Int clientPort = receiveDp.getPort();
③关闭网络连接:
ds.close();

网络协议

网络协议是指对于网络中传输的数据格式的规定。网络协议的实质也是客户端程序和服务器端程序对于数据的一种约定,只是由于以计算机为基础,所以更多的是使用数字来代表内容,这样就显得比较抽象一些。
在网络编程中,对于同一个网络程序来说,一般都会涉及到两个网络协议格式:客户端发送数据格式和服务器端反馈数据格式。
客户端程序需要完成的处理为:
    1、 客户端发送协议格式的生成
    2、 服务器端反馈数据格式的解析
服务器端程序需要完成的处理为:
    1、 服务器端反馈协议格式的生成
    2、 客户端发送协议格式的解析
小结:网络协议也是网络程序的核心,所以在实际开始进行网络编程时,设计一个良好的协议格式也是必须进行的工作。
posted @ 2016-05-08 15:56  20145332卢鑫  阅读(119)  评论(1编辑  收藏  举报