声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!
文章目录
一、端口
1、端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接(binding)后(也就是我们通常所说的,应用程序绑定到某个端口),传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。
2、端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,端口通常称为协议端口(protocol port),简称端口。
3、端口使用一个16位的数字来表示(也就是2个字节),它的范围是0~65535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。
我们在编写网络应用程序的时候,那么我们去使用1024以上的端口号。
二、套接字(socket)的引入
1、为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。
2、随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows等操作系统中。Java语言也引入了套接字编程模型。
三、系列文章(java网络编程)
java网络编程:1、计算机网络?网络通信的组成?什么是ip、协议、端口号?
java网络编程:2、IP地址、协议、网络状况、网络异质性问题的解决
java网络编程:6、TCP/IP模型、TCP/IP模型与OSI参考模型的对应关系
java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端
java网络编程:9、基于TCP的socket编程(二)服务器端循环监听接收多个客户端_多线程服务器程序
java网络编程:10、基于TCP的socket编程(三)缓冲流、flush方法、关闭流
java网络编程:11、基于UDP的socket编程(一)理论、基本步骤