1、概述
随着互联网的不断发展,对网络应用程序的需求和要求也越来越高,所以网络编程也是java很重要的一个方面。网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。
java的网络编程提供了两种通信协议 :TCP(传输控制协议)和UDP(数据报协议),其中TCP是可靠的,而UDP是不可靠的,网上的聊天工具一般采用这种协议。
2、IP地址
IP地址是表示一台计算机在互联网中唯一的标记,java的InetAddress类就是表示IP地址,其中分为Inet4Address和Inet6Address两个子类,分别表示IPv4和IPv6。常用方法有:getHostName()得到主机的IP地址,isReachable(int timeout)判断地址是否可以到达。
3、URL
URL是统一资源定位符,可以通过它找到互联网的任何资源(比如一个网页),而通过UrlConnection类得到远程网络资源的属性。<!-- Generated by javadoc (build 1.6.0-beta2) on Mon Mar 19 18:23:48 CST 2007 -->
<noscript></noscript>URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。
public class Test { public static void main(String[] args) { try { URL url=new URL("http://www.baidu.com");//指定远程资源的URL URLConnection connection=url.openConnection();//获得连接 InputStream input=url.openStream();//获得远程资源的IO StringBuffer buffer=new StringBuffer(); BufferedReader reader =new BufferedReader(new InputStreamReader(input)); String str=""; while((str=reader.readLine())!=null){ buffer.append(str);//读取远程资源的内容 } System.out.println("连接远程资源的内容:"+buffer.toString()); System.out.println("连接远程资源的类型:"+connection.getContentType()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
4、TCP实现
在java中使用socket(套接字)来完成TCP程序的开发,通过它可以方便的建立可靠、双向、点对点的通信连接。服务器端使用ServerSocket来等待客户端的连接,每一个客户端都需要一个Socket对象来表示。
建立服务器程序:
public class Server { public static void main(String[] args) { try { ServerSocket ss=new ServerSocket(6666);//设置服务器等待客户端连接的端口 while(true){ Socket s=ss.accept(); System.out.println("连接成功"); InputStream is=s.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); System.out.println("Clint("+s.getInetAddress()+"):"+br.readLine()); } br.close(); s.close(); ss.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
编写客户端程序:
public class Clint { public static void main(String[] args) { try { Socket s=new Socket("127.0.0.1",6666);//建立对服务器端的连接 OutputStream os=s.getOutputStream(); BufferedReader sys=new BufferedReader(new InputStreamReader(System.in));//获得用户的输入信息 String str=sys.readLine(); PrintWriter pw=new PrintWriter(os); while(!str.equals("bye")){//只要用户不输入“bye”,则将用户输入的信息传输到服务器端 pw.println(str); pw.flush(); str=sys.readLine(); } pw.close(); sys.close(); s.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
5、UDP实现
在java中通过DatagramSocket和DatagramPacket来完成UDP程序的开发。
编写UDP发生的服务器端程序:
public class UDPServer { public static void main(String[] args) { byte []b=new byte[1024]; DatagramPacket dp=new DatagramPacket(b,b.length);//设置发送的数据包长度 try { DatagramSocket ds=new DatagramSocket(5678);//设置服务器端的连接端口 ds.receive(dp); ByteArrayInputStream bais=new ByteArrayInputStream(b); DataInputStream dis=new DataInputStream(bais); System.out.println(dis.readDouble()); ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
UDP客户端设计:
public class UDPClint { public static void main(String[] args) { ByteArrayOutputStream baos=new ByteArrayOutputStream(); DataOutputStream dos=new DataOutputStream(baos); try { dos.writeDouble(5.6); byte []b=baos.toByteArray(); DatagramPacket dp=new DatagramPacket(b,b.length,new InetSocketAddress("127.0.0.1",5678)); DatagramSocket ds=new DatagramSocket(9999); ds.send(dp); ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...
Java网络编程是Java开发中的重要领域,它涵盖了网络应用程序的设计、实现和调试。在这个主题下,我们可以探讨多个关键知识点: 1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过...
《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。本书旨在帮助读者理解和掌握如何利用Java语言进行高效、安全的网络通信。书中内容覆盖了从基本的网络概念到复杂的多线程编程,是...
Java网络编程是计算机科学中的一个重要领域,特别是在软件开发中,它涉及到如何通过网络进行数据传输和通信。在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这...
"Java网络编程实验报告" 本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...
《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...
Java网络编程
Java 网络编程实践课程设计报告 这是一份 Java 网络编程实践课程设计报告,旨在帮助学生掌握 Java 编程语言、图形化界面、多线程、网络和数据库等技术,并提高动手实践能力和书本知识学习。该课程设计报告涵盖了 ...
Java网络编程是开发分布式应用程序的关键技术,它允许程序通过网络发送和接收数据。《Java网络编程实例》这本书的源代码提供了丰富的示例,帮助读者深入理解这一领域。本压缩包包含的源代码覆盖了Java网络编程的各种...
《Java网络编程精解》是孙卫琴老师的一本经典教程,主要涵盖了Java语言在网络编程领域的深度解析。这本书深入浅出地介绍了如何使用Java进行网络通信,包括基本的TCP/IP协议、套接字编程、多线程技术以及HTTP、FTP等...
Java网络编程是开发分布式应用程序的关键技术,它使得Java程序能够与其他设备、系统和服务进行通信。本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点...
java网络编程.pdf
Java网络编程是开发分布式应用程序的关键技术,它允许Java程序与其他计算机进行通信,实现数据的交换。这份"Java网络编程资料"包含三个重要的学习资源:关于Socket套接字的"Java套接字编程.chm"、关于网络协议特别是...
本资源为"Java网络编程.chm",是一本关于Java网络编程的电子书,以实例驱动的方式深入讲解了相关知识。 首先,我们要理解Java在网络编程中的基础——IO流。Java中的IO流分为字节流和字符流,它们用于读写数据,包括...
Java网络编程是Java开发中的重要领域,它涵盖了网络通信的所有基本概念和技术,包括TCP/IP协议栈、套接字(Socket)编程、多线程、数据传输格式等。孙卫琴的《java网络编程》一书深入浅出地讲解了这些核心概念,并...
《JAVA网络编程大全》是一本全面且深入介绍Java网络编程技术的权威著作,旨在帮助读者掌握Java在构建网络应用程序中的核心概念和实践技巧。PDF版的书籍为学习者提供了便捷的电子阅读体验,随时随地都能深化对Java...
Java网络编程是Java开发中的重要领域,主要用于实现应用程序之间的通信,包括客户端-服务器架构、分布式系统以及互联网数据传输。这份“java网络编程 PPT”来自清华大学,无疑为学习这一主题提供了权威的参考资料。...
《Java网络编程》是编程领域的经典著作,尤其对于学习Java网络编程的初学者及进阶者来说,这本书具有很高的参考价值。它详细介绍了如何利用Java语言进行网络通信,涵盖了网络编程的基本概念、协议以及实现方法。 一...