`
哈达f
  • 浏览: 120547 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

网络编程基础

    博客分类:
  • j2se
 
阅读更多

网络编程:
	网络通讯中所需要了解的一些内容。
	TCP/IP协议体系:
		网络层:ip
		传输层:Tcp Udp。
		应用层:SMTP,FTP,HTTP,thunder.
	
	网络数据传输所需的要素:
	1,IP地址:127.0.0.1  localhost
	2,端口:数据进行出入的逻辑地址,用于标识处理数据的应用程序。
		0~65535 0~1024:系统应用或者保留端口。
	3,协议:通讯的规则。


	Tcp和Udp的特点:
	Udp:面向无连接,速度较快,存在数据不安全,是通过数据封包的形式进行数据的传输。每一个包最大是64k.
		数据包里封装了源地址,源端口,目的地址,目的端口,主体数据。
		涉及到的对象DatagramSocket DatagramPacket
	
	Tcp:面向连接,建立连接稍消耗资源,有了连接,就有了数据通道,就可以在该通道进行数据的传输。
		通过三次握手的形式完成连接的建立。
		涉及到的对象:Socket  ServerSocket.
	
	Socket:给网络通讯提供一个机制,因为协议的不同,对应socket服务也不一样。

--------------------------------------------
	
	对于UDP的通讯。就好像是邮递包裹,或者步话机。
	都需要有两个端点。
	发送端思路:
	1,建立udp的socket服务。
	2,将数据封装成数据包,并在包中指定目的地址和端口。
	3,通过socket服务的send方法将数据发出。
	4,关闭socket资源。

	DatagramSocket ds = new DatagramSocket();
	
	byte[] arr = "data hen duo ".getBytes();

	DatagramPacket dp = new DatagramPacket(arr,arr.length,InetAddress.getByName("192.168.1.254"),10000);

	ds.send(dp);

	ds.close();

	接收端思路:
	1,建立udp的socket服务,并监听一个端口。
	2,为了获取数据中的分类信息,包括源地址,数据主体。
		先定义好了一个数据包,将一个字节数组作为缓冲区封装到了数据包对象中。
	3,通过socket服务的receive方法将收到的数据存入到数据包中。
	4,通过数据包的方法获取数据包中不同类别的数据。
	5,关闭资源。(视情况而定)

	DatagramSocket ds = new DatagramSocket(10000);

	byte[] buf = new byte[1024];
	DatagramPacket dp = new DatagramPacket(buf,buf.length);

	ds.receive(dp);//接收方法是阻塞式的。

	String ip = dp.getAddress().getHostAddress();

	String data = new String(dp.getData(),0,dp.getLength());

	int port = dp.getPort();

	System.out.println(ip+":"+data);

	ds.close();

	
	例程:网络聊天。DOS版。
------------------------------------------

	Tcp的通讯:相当于打电话。
	客户端的思路:
	1,建立客户端的socket服务,通常指定目的地址和端口.
	2,通过建立的好的通道中的socket流的读取和写入对象对数据进行操作。
	3,关闭客户端。

	Socket s = new Socket("192.168.1.254",10002);

	OutputStream out = s.getOutputStream();

	out.write(" tcp ....".getBytes());


	InputStream in = s.getInputStream();
	byte[] buf = new byte[1024];

	int len = in.read(buf);

	System.out.println(new String(buf,0,len));

	s.close();

	-----------
	服务端的思路:
	1,建立服务端的socket服务,需要监听一个端口。
	2,通过accept方法获取客户端对象。
	3,通过获取到的客户端对象的读取和写入流对象与对应的客户端进行通讯。
	4,关闭客户端,关闭服务端(视情况而定).

	ServerSocket ss = new ServerSocket(10002);
	Socket s = ss.accept();

	InputStream in = s.getInputStream();
	byte[] buf = new byte[1024];
	int len = in.read(buf);
	System.out.println(new String(buf,0,len));

	OutputStream out = s.getOutputStream();
	out.write("收到".getBytes());

	s.close();

	ss.close();


web服务器原理,基于三项技术完成
1,socket。
2,多线程。
3,IO流。
--------------------------------------------------




 
分享到:
评论

相关推荐

    python网络编程基础

    Python网络编程基础是入门Python网络应用开发的重要领域,它涵盖了从基本的网络概念到复杂的网络交互技术。在Python中,网络编程主要涉及TCP/IP协议、HTTP协议、套接字编程、Web服务API调用等多个方面。下面将详细...

    linux网络编程基础

    本教程主要关注Linux环境下的网络编程基础知识,包括UDP(用户数据报协议)和TCP(传输控制协议)的通信模型。下面将详细介绍这两个协议以及如何在Linux下进行相关的编程实践。 首先,TCP是一种面向连接的、可靠的...

    网络编程基础篇系列 网络编程基础篇系列.rar

    1. **网络编程基础**: - 网络编程的基本概念:理解TCP/IP协议栈,包括网络层(IP)、传输层(TCP/UDP)以及应用层的协议(HTTP、FTP等)。 - 端口与套接字:学习如何使用端口号标识不同的服务,并利用套接字进行...

    Python网络编程基础

    《Python网络编程基础》这本书是Python开发者学习网络编程的重要资源,尤其适合初学者入门。它涵盖了从基础到高级的各种主题,旨在帮助读者深入理解Python在处理网络通信时的各种技术和概念。 首先,书中会讲解...

    PYTHON网络编程基础.pdf

    本资源"PYTHON网络编程基础.pdf"是针对初学者的一份详尽指南,旨在帮助读者掌握Python网络编程的基础知识。 Python语言在网络编程中的优势在于其简洁的语法和丰富的库支持。例如,标准库中的`socket`模块提供了低...

    PYTHON网络编程基础

    PYTHON网络编程基础.pdfPYTHON网络编程基础.pdfPYTHON网络编程基础.pdfPYTHON网络编程基础.pdfPYTHON网络编程基础.pdfPYTHON网络编程基础.pdfPYTHON网络编程基础.pdf

    Python网络编程基础第二版 源代码

    Python网络编程基础第二版的源代码是一份宝贵的教育资源,它涵盖了Python在进行网络通信和数据交换方面的核心概念和技术。这份源代码提供了丰富的示例和练习,帮助初学者深入理解网络编程的基本原理。以下是对这份...

    Java程序设计之网络编程基础教程课件

    1. Java网络编程基础 Java网络编程主要基于Java的Socket API,该API提供了在TCP/IP协议上建立连接和传输数据的接口。Java.net包下包含Socket和ServerSocket类,分别用于客户端和服务器端的编程。此外,URL和...

    Python网络编程基础.pdf

    Python网络编程基础.pdf 开发技术

    《python网络编程基础》PDF电子书

    《python网络编程基础》PDF电子书, web必读的一本书。

    javascript网络编程基础教程

    JavaScript网络编程基础教程主要涵盖了利用JavaScript进行Web开发中的网络交互技术。这门教程旨在帮助初学者理解并掌握JavaScript在网络环境中的应用,使开发者能够构建功能丰富的动态网页和应用程序。JavaScript,...

    C#网络编程基础

    本课程“C#网络编程基础”旨在帮助初学者快速掌握网络编程的基本概念和实践技巧。 首先,我们从“委托机制”这个主题开始。在C#中,委托是一种类型安全的函数指针,它允许我们传递方法作为参数或者存储方法以便稍后...

    java网络编程基础

    java网络编程基础 java网络编程基础 java网络编程基础

    Python网络编程基础 中文版 带完整目录标签

    Python网络编程基础 中文版 带完整目录标签清晰版

    PERL网络编程基础教程

    PERL网络编程基础教程,PERL网络编程基础教程,PERL网络编程基础教程

Global site tag (gtag.js) - Google Analytics