网络通信基础入门:
在通信过程中,我们需要有一个服务器,和若干个客户端。我们要在每一个客户端和服务器之间都建立一个通道,即输入输出流。这个通道是客
户端与服务器相之间用于传输数据的通道。而服务器的作用则是将一个或多个客户端传来的信息整合,然后做出相应的处理。所以说,服务器就好像是一
只手,对客户端之间的信息传递经行操作。故在通信的过程中,我们必须至少有一个服务器。
我们一般需要以下几个步骤:
1.创建服务器与客户端:
2.连接
3.获取输入输出流
4.传输数据
1.服务器:这里我们需要用到一个类,java.net.ServerSocket,这是一个服务器类,例如:
//创建服务器
ServerSocket socket = new ServerSocket(5200);
//等待连接
Socket client = socket.accept();
就创建了一个空的服务器,并让服务器进入等待状态。当客户端与服务器创建连接后,就会返回一个服务器类,可以用于获取通道。这里的“5200”指的
是我们对于服务器所要绑定的端口,每一台电脑都会有0~65535个端口,这些端口是通信过程中每个服务器所在的区域,就像是每个学校都会有很多学院
,如果不知道我们要寻找的学院的位置,就无法联系找到学院里的人一样。对于端口,一般我们所设定的不能为0~1024之间,因为这是一个系统占用的区
间,当然,更不能超过65535了。
2.客户端:从理论上讲,只要有一个电脑在某个端口上绑定了一个服务器。并且另外一台电脑和他在同一个局域网中。那么就可以用命令提示符中的
telnet命令进入该服务器,格式为:
telnet 服务器所在电脑的IP地址 绑定的端口
然而,一般情况下我们直接用客户端类Socket,直接进入服务器经行连接,例如:
Socket client = new Socket("192,168.0.1", 5200);
这句话就是创建一个客户端,并与IP地址为192,168.0.1的电脑上的5200端口经行连接,如果连接成功,服务器与客户端就会有一个通道,我们可以用流
来获取通道。
3.通道:获取通道,在服务器中,当accept();运行后,会返回一个客户端类,这就是与服务器建立连接的那个客户端,我们可以用这个客户端来创建输
入输出流。而在客户端中,自己本身就是个客户端,故可以直接用自己的客户端创建输出输出流。
4.连接:当服务器和客户端之间的联系都准备就绪后,就可以传输数据了。申明一下,服务器与客户端之间并不是对立的个体,服务器只是一个工具,一
个用于处理数据的工具而已,但却是整个通信的核心。因为客户端之间是没有连接通道的,必须通过服务器来操控。服务器的操控行为,直接影响到数据
的传输的意义,例如这串数据是表示的是一条信息,还是一条直线,还是一张图片,都是由通信协议的制定,并由服务器处理成有效数据,传给其他客户
端的。
5.通信协议:在数据传输中,最底层的传输都是通过字节的传输来完成的。这样一来,就会导致一个问题,当我得到一堆字节的时候,每个字节所代表什
么意思呢?这就需要协议的制定。比如传输一幅图,和前面的“哈夫曼压缩”一样,压缩和解压要形成一种规定,通信传输也一样,我们是先传输的长或
者先传输高,这都是一种协议,有了这些协议,才能将数据清除的传输,并且让人能够读懂。
实践:
那么下面让我们开始做一个简单的聊天吧!
- 大小: 28.7 KB
分享到:
相关推荐
【JAVA零基础入门教程笔记】 本教程是针对Java编程语言的初学者精心设计的,旨在帮助没有编程背景的学员快速掌握Java基础知识。任小龙的JAVA教程在网易公开课上提供了丰富的教学资源,配合这些笔记和源代码,学习者...
Java入门基础源码是针对初学者设计的一套教学资源,旨在帮助零基础的学习者快速掌握Java编程语言。这个教程通过提供源代码实例,让学习者能够亲手实践,从而加深对编程概念的理解。毕向东老师的视频教程是这个学习...
- Java网络编程:理解网络通信的基本原理,能够编写客户端和服务器端程序。 - Java并发编程:掌握线程、锁、并发集合、线程池等并发机制。 - Spring框架:学习Spring的核心原理,包括IOC、AOP等。 - 微服务架构:...
Java是一种广泛使用的面向对象的编程语言...通过这个零基础的Java视频教程,你可以逐步学习并掌握这些知识点,为成为一名合格的Java开发者奠定坚实的基础。记得理论结合实践,多写代码,不断巩固和提高。祝你学习顺利!
"Java零基础教程视频"旨在帮助那些对编程没有任何经验的人入门Java世界。 在Java学习的初始阶段,你需要了解以下几个关键概念: 1. **Java环境设置**:首先,你需要安装Java Development Kit (JDK),它是编写、...
网络编程部分会讲解TCP和UDP协议,以及如何进行网络通信。此外,课程还将介绍类加载器、反射机制,让学员能够通过反射访问和调用私有方法,以及Java注解的使用。 【Java虚拟机与内存管理】 在内存管理方面,课程会...
6. **IO流**:输入/输出流是处理数据传输的重要部分,Java的IO库提供了丰富的类和接口,用于读写文件、网络通信等。 7. **多线程**:Java内置了对多线程的支持,通过Thread类和Runnable接口,可以轻松实现并发编程...
"Java经典入门教程"提供了全面且深入的指导,旨在帮助零基础的学习者以及希望深化Java原理理解的开发者。本教程以精炼易懂的方式,由浅入深地介绍了Java编程的核心概念和技术。 1. **Java基础知识**:首先,教程会...
理解TCP/IP协议以及套接字编程是实现网络通信的关键。 5. **数据结构与算法**:在游戏开发中,数组是常用的数据结构,用于存储和处理游戏状态。此外,可能还需要使用链表、栈、队列等其他数据结构,以及搜索、排序...
【Java开发零基础汇道入门教程】是一份详细的Java学习指南,涵盖了从基础到进阶的各个阶段。这个教程分为三个主要阶段:JAVASE阶段、JAVA Web阶段和JAVAEE高级阶段。 **JAVASE阶段**是入门的基础,主要包括以下几个...
7. **第七章:IO流** - 输入输出流是数据传输的基础,包括文件操作、网络通信等。 8. **第八章:多线程** - Java支持并发编程,多线程使得程序可以同时执行多个任务。 9. **第九章:反射与注解** - 反射允许我们在...
《Java2入门与实例教程》是一本针对初学者的编程指南,主要涵盖了Java语言的基础概念、语法和实际应用。在Java编程的世界里,Java2(也称为Java 2平台标准版,J2SE)是Java的核心版本,为开发桌面应用程序提供了必要...
本资源“java 从入门到精通 源代码”是针对初学者设计的一套完整的学习资料,旨在帮助读者从零基础逐步掌握Java编程的核心概念和技术。 在Java入门阶段,首先会接触到的是Java的基础语法。这包括数据类型(如整型、...
《输入输出流》部分,我们将探讨Java I/O系统,学习如何进行文件读写,以及网络通信中的数据传输。这包括了InputStream、OutputStream、Reader、Writer等类的使用。 《集合》是Java中处理数据的重要工具,包括...
通过阅读文档,动手实践,逐步理解和掌握这些概念,将帮助你从零开始构建扎实的Java基础。记得,理论结合实践是学习编程的关键,不要怕犯错,每次失败都是向成功迈进的一步。祝你在Java学习之路上顺利!
5. **输入/输出(I/O)**:Java的I/O流系统强大,涵盖了文件操作、网络通信等各种场景。你需要了解InputStream和OutputStream两大类,以及BufferedReader、PrintWriter等实用类。 6. **多线程**:Java内置了多线程...
《Java项目入门教材Java案例分析》是一本专为初学者设计的编程教程,旨在帮助零基础的学员快速掌握Java编程语言,并通过实际案例深入理解Java在项目开发中的应用。这本书的特点在于其详尽的内容和丰富的实例,使得...
本教程全套旨在帮助零基础的学习者从入门到精通,成为JAVA后端开发工程师。下面将对Java的主要概念、学习路径以及相关知识点进行详细阐述。 首先,Java的基础部分包括语法、数据类型、控制结构和类的使用。你需要...
本教程“android开发零基础入门视频教程课件”旨在为那些对编程有一定兴趣,但对Android系统开发尚无了解的学员提供一个全面的学习起点。 课程可能涵盖以下关键知识点: 1. **环境配置**:首先,你需要安装Java ...
总结来说,《Java入门经典 光盘资料》是一套系统且实用的Java学习资源,无论你是零基础的新手,还是希望进一步提升技能的开发者,都能从中受益匪浅。通过详细学习并实践光盘中的内容,你将能够熟练掌握Java编程,并...