java web 是指用java技术来解决相关web互联网领域的技术的总和。web包括web服务器和web客服端两部分。java在客户端的应用有java applet ,不过使用的很少,java在服务器端的应用非常的丰富,比如servlet, jsp 和第三方框架等。java技术 对web领域的 发展注入了强大的动力。
web 服务器 ,一般指网站服务器,是指驻留于因特网上的某种计算机程序,可以向浏览器等web客户端提供文档,也可以放置网站文件,让全世界浏览,可以放置数据文件,让全世界下载。目前最主流的三个web服务器是apache
niginx iis.
java 中的io 指的是 input 和output :计算机中的数据传输一般都是以流的形式来进行传输的,可以把 传输的数据流看成是由 1和0构成的“水流”。
java io 包中提供了多种用来对流来进行处理的类,这些类都是继承自以下四个抽象类: 1字符输入流:Reader
2字符输出流:Writer 3字节输入流:InputStream 4字节输出流:OutputStream
从方向上划分:输入流和 输出流
从传输数据的单位上划分:字符流 和字节流
进程: 计算机正在运行的一个软件或者一个程序可以看做是一个进程;
线程:是进程的多个执行路径,一个进程可以有多个线程;
java要实现多线程,要么继承Thread 类 要么实现Runnable 接口;
想要实现多线程的内容写在run方法之中,开启一个线程要调用start 方法;
synchronized:当前对象或方法到线程执行结束之前,只能被一条线程调用(线程锁);
套接字:源IP 地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。用其标识客户端请求的服务器和服务;
常用的TCP/ip协议的三种套接字:
1流套接字: sock_stream
流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送、并按顺序接收。流套接字之所以能够实现可靠的数据传输服务其原因在于其使用了传输控制协议,即TCP协议。
2数据报套接字 sock_dgram
数据报套接字提供了一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP(User Datagram Protocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。
3原始套接字 :sock_raw
原始套接字(SOCKET_RAW)允许对较低层次的协议直接访问,比如IP、 ICMP协议,它常用于检验新的协议实现,或者访问现有服务中配置的新设备,因为RAW SOCKET可以自如地控制Windows下的多种协议,能够对网络底层的传输机制进行控制,所以可以应用原始套接字来操纵网络层和传输层应用。比如,我们可以通过RAW SOCKET来接收发向本机的ICMP、IGMP协议包,或者接收TCP/IP栈不能够处理的IP包,也可以用来发送一些自定包头或自定协议的IP包。网络监听技术很大程度上依赖于SOCKET_RAW;
套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。
非常非常简单的举例说明下:Socket=Ip address+ TCP/UDP + port
套接字 就是IP地址加上传输协议加上端口
端口号:端口是一个信息缓冲区,用户保留socket中的输入/输出信息,端口号是一个16位的无符号整数,范围是0~65535,以区别主机上的每一个程序(端口号就像房间的房间号) 低于256的端口号保留给标准应用程序,比如pop3的端口号就是110,每一个套接字都组合进了IP地址、端口、端口号、这样形成的整体就可以区别每一个套接字。