千博企业网站管理系统2013,wordpress模板不一样,网站专题报道页面怎么做的,wordpress标签导航目录 网络编程概述
网络模型
网络通信三要素: IP 端口号 通信协议
IP地址#xff08;Internet Protocol Address#xff09;
端口号
网络通信协议
TCP
三次握手
四次挥手
UDP
TCP编程 客户端Socket的工作过程包含以下四个基本的步骤#xff1a;
服务器程序…
目录 网络编程概述
网络模型
网络通信三要素: IP 端口号 通信协议
IP地址Internet Protocol Address
端口号
网络通信协议
TCP
三次握手
四次挥手
UDP
TCP编程 客户端Socket的工作过程包含以下四个基本的步骤
服务器程序的工作过程包含以下四个基本的步骤
UDP编程
发送端
接收端要指定监听的端口 网络编程概述 计算机网络 把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来由功能完善的
软件实现资源共享和信息传递的系统。 Java是 Internet 上的语言它从语言级上提供了对网络应用程序的支持程序员能够很容易开
发常见的网络应用程序。 Java提供的网络类库可以实现网络连接联网的底层细节被隐藏在Java 的本机安装系统里
由 JVM 进行控制。并且 Java 实现了一个 跨平台的网络库程序员面对的是一个统一的网络编程
环境。 网络编程的目的 直接或间接地通过网络与其它计算机进行通讯。
网络编程中有两个主要的问题 1.如何准确地定位网络上一台或多台主机 2.找到主机后如何可靠高效地进行数据传输。
网络模型 网络通信三要素: IP 端口号 通信协议
IP地址Internet Protocol Address IP是指互联网协议地址又译为网际协议地址.网络中的计算机使用IP地址来进行唯一标识。 在Windows系统下打开cmd输入命令ipconfig按回车即可查看。 本地回环地址(hostAddress)127.0.0.1 ,它代表设备的本地虚拟接口。 端口号 端口号是计算机中的应用程序的一个整数数字标号用来区分不同的应用程序。 0 ~ 1024 未被系统使用或保留的端口号0 ~ 65535为有效的端口号也就是说我们要对一些程
序定义端口号的时候要选择1024 ~ 65535范围内的整数数字。
网络通信协议 计算机网络中实现通信必须有一些约定即通信协议对速率、传输代码、代码结构、 传输控制步骤、出错控制等制定标准。 传输层协议中有两个非常重要的协议 传输控制协议TCP(Transmission Control Protocol) 用户数据报协议UDP(User Datagram Protocol)。
TCP 使用TCP协议前须先建立TCP连接形成传输数据通道 传输前采用“三次握手”方式是可靠的 TCP协议进行通信的两个应用进程客户端、服务端 在连接中可进行大数据量的传输 传输完毕需释放已建立的连接效率低 在断开时要进行“四次挥手”
三次握手 而用更通俗的语言来说则是这样 四次挥手 而用更通俗的语言来说则是这样 UDP
将数据、源、目的封装成数据包不需要建立连接 每个数据报的大小限制在64K内 因无需连接故是不可靠的 发送数据结束时无需释放资源速度快
TCP编程
利用套接字(Socket)开发网络应用程序早已被广泛的采用以至于成为事实上的标准。 通信的两端都要有Socket是两台机器间通信的端点 网络通信其实就是Socket间的通信。 Socket允许程序把网络连接当成一个流数据在两个Socket间通过IO传输。 客户端Socket的工作过程包含以下四个基本的步骤 1.创建 Socket 根据指定服务端的 IP 地址或端口号构造 Socket 类对象。若服务器端响应则建立客户端到服务器的通信线路。若连接失败会出现异常。
2.打开连接到 Socket 的输入/出流 使用 getInputStream()方法获得输入流 使用 getOutputStream()方法获得输出流进行数据传输
3.按照一定的协议对 Socket 进行读/写操作 通过输入流读取服务器放入线路的信息但不能读取自己放入线路的信息通过输出流将信息写入线程。
4.关闭 Socket 断开客户端到服务器的连接释放线路 客户端程序可以使用Socket类创建对象 创建的同时会自动向服务器方发 起连接 。 /*
客户端*/
public class Client {public static void main(String[] args) {//创建客户端try {Socket socketnew Socket(127.0.0.1,6666);//连接自己ip为127.0.0.1String s 你好服务器;OutputStream outputsocket.getOutputStream();output.write(s.getBytes());} catch (IOException e) {throw new RuntimeException(e);}}
}使用包装流输入输出 public class Client {public static void main(String[] args) {try {Socket socket new Socket(127.0.0.1,6666);String s 你好服务器;DataOutputStream dataOutputStream new DataOutputStream(socket.getOutputStream());dataOutputStream.writeUTF(s);DataInputStream dataInputStream new DataInputStream(socket.getInputStream());String s1 dataInputStream.readUTF();System.out.println(s1);} catch (IOException e) {e.printStackTrace();}}
}服务器程序的工作过程包含以下四个基本的步骤 1.调用 ServerSocket(int port) 创建一个服务器端套接字并绑定到指定端口上。用于监听客户端的请求。 2.调用 accept() 监听连接请求如果客户端请求连接则接受连接返回通信套接字对象。 3.调用 该Socket类对象的 getOutputStream() 和 getInputStream () 获取输出流和输入流开始网络数据的发送和接收。 4.关闭ServerSocket和Socket对象 客户端访问结束关闭通信套接字。 服务器建立 ServerSocket 对象 ServerSocket 对象负责等待客户端请求建立套接字连接类似邮局某个窗口中的业务员。也就是说服务器必须事先建立一个等待客户请求建立套接字连接的ServerSocket对象。 /*
服务器*/
public class Server {public static void main(String[] args) {try {//创建服务器对象ServerSocket serverSocketnew ServerSocket(6666);System.out.println(服务器启动成功);//监听客户端是否向服务器发送链接请求Socket socket serverSocket.accept();System.out.println(有客户端连接到了服务器);//后续操作InputStream inputsocket.getInputStream();byte[]bytesnew byte[100];int sizeinput.read(bytes);String snew String(bytes,0,size);System.out.println(s);}catch (IOException e){e.printStackTrace();System.out.println(服务器启动失败端口已被占用);}}
}使用包装流输入输出 public class Server {public static void main(String[] args) {try {System.out.println(服务器开始启动);ServerSocket serverSocket new ServerSocket(6666);System.out.println(服务器启动成功);Socket socket serverSocket.accept();//包装流 直接读到一个字符串DataInputStream dataInputStream new DataInputStream(socket.getInputStream());String s dataInputStream.readUTF();System.out.println(s);//从服务器端向客户端发送一个消息String s1 你好客户端!;DataOutputStream dataOutputStream new DataOutputStream(socket.getOutputStream());dataOutputStream.writeUTF(s1);} catch (IOException e) {e.printStackTrace();}}
}UDP编程 类 DatagramSocket 和 DatagramPacket 实现了基于 UDP 协议网络程序。 UDP数据报通过数据报套接字 DatagramSocket 发送和接收系统不保证UDP数据报一定能够安全送到目的地也不能确定什么时候可以抵达。 DatagramPacket 对象封装了UDP数据报在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。 UDP协议中每个数据报都给出了完整的地址信息因此无须建立发送方和接收方的连接 流程 1. DatagramSocket与DatagramPacket 2. 建立发送端接收端 3. 建立数据报 4. 调用Socket的发送、接收方法 5. 关闭Socket 注意发送端与接收端是两个独立的运行程序 发送端 /*
发送端*/
public class Send {public static void main(String[] args) throws IOException {//用来发送和接受数据DatagramSocket datagramSocketnew DatagramSocket();
/*public DatagramPacket(byte buf[], int offset, int length,InetAddress address, int port) { 参数分别为字节数组从哪里开始发送 发送多长 用一个类来分装IP地址端口setData(buf, offset, length);setAddress(address);setPort(port);}*/byte []bytes你好.getBytes();//数据报DatagramPacket datagramPacketnew DatagramPacket(bytes,0,bytes.length, InetAddress.getByName(127.0.0.1),6666);//发送datagramSocket.send(datagramPacket);System.out.println(发送完成);}
}接收端要指定监听的端口 /*
接收端*/
public class Receive {public static void main(String[] args) throws IOException {//用来发送和接受数据DatagramSocket datagramSocketnew DatagramSocket(6666);//创建一个接受的数据报byte[]bytesnew byte[100];DatagramPacket datagramPacketnew DatagramPacket(bytes,0,bytes.length);//接受datagramSocket.receive(datagramPacket);String snew String(bytes,0,datagramPacket.getLength());//datagramPacket.getLength()接受到数据的实际长度}
}