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网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...
Java网络编程
Java 网络编程实践课程设计报告 这是一份 Java 网络编程实践课程设计报告,旨在帮助学生掌握 Java 编程语言、图形化界面、多线程、网络和数据库等技术,并提高动手实践能力和书本知识学习。该课程设计报告涵盖了 ...
《Java网络编程》,附带《Java网络编程实例》和阅读器,欢迎下载
java网络编程.pdf
java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf java网络编程pdf
Java网络编程(第3版) 《Java网络编程》第三版会为你介绍Java网络API的最新特性。本书讨论了JDK 1.4和1.5(现在已命名为J2SE 5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)...
Java网络编程(第4版)的电子版书籍,学习java通讯技术的同学建议看一下这本书
Java网络编程期末考试复习题库+答案 java网络编程考试题目,内含有Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作),有答案
Java网络编程
《Java网络编程(第4版)》全面介绍了如何使用Java开发网络程序。你将学习如何使用Java的网络类库既快速又轻松地完成常见的网络编程任务,如编写多线程服务器、加密通信、广播到本地网络,以及向服务器端程序提交数据...
Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第01章 项目背景知识(共15页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第02章 用HTML+CSS实现宠物分类展现静态网页版本(共44页)....
前几天看到公司一个大神看技术文档,打眼瞟了一下,全是英文的表示直接看看不到。但是大神不一样,人家是硕士哦,英文杠杠的,但是自己心里也想看...java网络编程第四版 java_concurrency_in_practice.pdf Java并发实践
JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程
Java网络编程精解(孙卫琴)电子教案;Java网络编程精解(孙卫琴)电子教案
最近获得的《Java网络编程实例》一书的源代码,上次在CSDN看到一个相同的资源,结果一下载打开,机子就中毒了,强烈鄙视那种上传病毒的人!
《Java网络编程实例:Java网络编程实例》一书的光盘资源,包括各章的源代码实例,需要学习的朋友看看
java网络编程实例,详细深入介绍java网络编程技术