`
yaolinnan
  • 浏览: 58608 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

java网络编程

 
阅读更多

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网络编程案例教程习题参考答案 .pdf

    Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...

    Java网络编程/Java网络编程实例

    Java网络编程是Java开发中的重要领域,它涵盖了网络应用程序的设计、实现和调试。在这个主题下,我们可以探讨多个关键知识点: 1. **Java Socket编程**:Java的Socket类提供了基于TCP/IP协议的网络通信能力。通过...

    java网络编程第四版pdf

    《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。本书旨在帮助读者理解和掌握如何利用Java语言进行高效、安全的网络通信。书中内容覆盖了从基本的网络概念到复杂的多线程编程,是...

    Java网络编程期末考试复习题库+答案

    Java网络编程是计算机科学中的一个重要领域,特别是在软件开发中,它涉及到如何通过网络进行数据传输和通信。在Java中,网络编程主要依赖于Java的Socket编程、ServerSocket、URL类以及NIO(非阻塞I/O)等核心API。这...

    Java网络编程实验报告.pdf

    "Java网络编程实验报告" 本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...

    Java网络编程(第4版)PDF

    《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...

    [Java网络编程(第3版,2004)].(Java.Network.Prog.epub

    Java网络编程

    Java网络编程实践课程设计报告.pdf

    Java 网络编程实践课程设计报告 这是一份 Java 网络编程实践课程设计报告,旨在帮助学生掌握 Java 编程语言、图形化界面、多线程、网络和数据库等技术,并提高动手实践能力和书本知识学习。该课程设计报告涵盖了 ...

    Java网络编程实例(随书源代码)

    Java网络编程是开发分布式应用程序的关键技术,它允许程序通过网络发送和接收数据。《Java网络编程实例》这本书的源代码提供了丰富的示例,帮助读者深入理解这一领域。本压缩包包含的源代码覆盖了Java网络编程的各种...

    Java网络编程精解(孙卫琴)电子教案

    《Java网络编程精解》是孙卫琴老师的一本经典教程,主要涵盖了Java语言在网络编程领域的深度解析。这本书深入浅出地介绍了如何使用Java进行网络通信,包括基本的TCP/IP协议、套接字编程、多线程技术以及HTTP、FTP等...

    《Java网络编程实例:Java网络编程实例》

    Java网络编程是开发分布式应用程序的关键技术,它使得Java程序能够与其他设备、系统和服务进行通信。本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点...

    java网络编程.pdf

    java网络编程.pdf

    Java网络编程资料

    Java网络编程是开发分布式应用程序的关键技术,它允许Java程序与其他计算机进行通信,实现数据的交换。这份"Java网络编程资料"包含三个重要的学习资源:关于Socket套接字的"Java套接字编程.chm"、关于网络协议特别是...

    Java网络编程.chm

    本资源为"Java网络编程.chm",是一本关于Java网络编程的电子书,以实例驱动的方式深入讲解了相关知识。 首先,我们要理解Java在网络编程中的基础——IO流。Java中的IO流分为字节流和字符流,它们用于读写数据,包括...

    java网络编程源码

    Java网络编程是Java开发中的重要领域,它涵盖了网络通信的所有基本概念和技术,包括TCP/IP协议栈、套接字(Socket)编程、多线程、数据传输格式等。孙卫琴的《java网络编程》一书深入浅出地讲解了这些核心概念,并...

    JAVA网络编程大全,pdf版

    《JAVA网络编程大全》是一本全面且深入介绍Java网络编程技术的权威著作,旨在帮助读者掌握Java在构建网络应用程序中的核心概念和实践技巧。PDF版的书籍为学习者提供了便捷的电子阅读体验,随时随地都能深化对Java...

    java网络编程 PPT

    Java网络编程是Java开发中的重要领域,主要用于实现应用程序之间的通信,包括客户端-服务器架构、分布式系统以及互联网数据传输。这份“java网络编程 PPT”来自清华大学,无疑为学习这一主题提供了权威的参考资料。...

    java网络编程经典的学习书籍

    《Java网络编程》是编程领域的经典著作,尤其对于学习Java网络编程的初学者及进阶者来说,这本书具有很高的参考价值。它详细介绍了如何利用Java语言进行网络通信,涵盖了网络编程的基本概念、协议以及实现方法。 一...

Global site tag (gtag.js) - Google Analytics