当前位置: 首页 > news >正文

营销型网站设计案例简单网站的代码

营销型网站设计案例,简单网站的代码,蚌埠网站建设公司cztv,安卓系统最好优化软件一、Java 网络编程基础 IP 地址和端口号 IP 地址#xff1a; IP 地址是互联网协议地址#xff0c;用于标识网络中的设备。在 Java 中#xff0c;InetAddress类是用于表示 IP 地址的主要类。例如#xff0c;InetAddress.getByName(www.example.com)可以获取指定…一、Java 网络编程基础 IP 地址和端口号 IP 地址 IP 地址是互联网协议地址用于标识网络中的设备。在 Java 中InetAddress类是用于表示 IP 地址的主要类。例如InetAddress.getByName(www.example.com)可以获取指定域名对应的 IP 地址。IP 地址分为 IPv4如192.168.0.1和 IPv6如2001:0db8:85a3:0000:0000:8a2e:0370:7334两种格式。IPv4 地址由 32 位二进制数组成通常用点分十进制表示IPv6 地址由 128 位二进制数组成用于提供更多的 IP 地址以满足不断增长的网络设备需求。端口号 端口号是用于标识设备上的特定网络服务或应用程序的数字。它的取值范围是 0 - 65535其中 0 - 1023 是系统保留端口用于一些常见的网络服务如 HTTP 服务通常使用端口 80HTTPS 使用端口 443。在 Java 中当创建网络应用程序时需要指定一个端口号来让客户端能够找到并连接到服务端。例如一个简单的 Web 服务器可能会在端口 8080 上监听客户端请求。网络通信模型 OSI 模型和 TCP/IP 模型 OSI开放式系统互联模型是一个理论上的网络通信参考模型分为七层从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而 TCP/IP 模型是实际应用更为广泛的网络通信模型它分为四层分别是网络接口层、网络层、传输层和应用层。在 Java 网络编程中主要涉及的是传输层如 TCP 和 UDP 协议和应用层。TCP/IP 模型的网络层主要负责处理 IP 数据包的寻址和路由确保数据能够在不同的网络之间传输。传输层则提供端到端的通信服务TCP 协议保证数据的可靠传输UDP 协议提供快速但不可靠的传输。应用层是程序员直接接触的一层在这里可以通过各种协议如 HTTP、FTP 等来构建网络应用程序。 二、基于 TCP 的 Java 网络编程 Socket 和 ServerSocket 类 ServerSocket ServerSocket是服务端用于监听客户端连接请求的类。当创建一个ServerSocket对象并指定一个端口号后它就开始在该端口上监听。例如ServerSocket serverSocket new ServerSocket(8080);表示在端口 8080 上等待客户端连接。当有客户端请求连接时可以通过serverSocket.accept()方法接受连接这个方法会阻塞当前线程直到有客户端连接成功然后返回一个Socket对象用于和客户端进行通信。Socket Socket类代表一个客户端和服务端之间的连接。在客户端可以通过Socket socket new Socket(localhost, 8080);来创建一个连接到本地主机localhost的 8080 端口的连接。一旦连接建立客户端和服务端就可以通过Socket对象获取输入流和输出流来进行数据的读写。例如服务端可以通过InputStream inputStream socket.getInputStream();获取客户端发送的数据输入流通过OutputStream outputStream socket.getOutputStream();向客户端发送数据。TCP 通信流程示例 服务端流程 首先创建ServerSocket对象并开始监听端口。当客户端连接请求到来时接受连接并获取Socket对象。通过Socket对象获取输入流和输出流读取客户端发送的数据并进行处理然后将处理结果通过输出流发送回客户端。通信结束后关闭Socket和ServerSocket对象。客户端流程 创建Socket对象连接到服务端。获取输入流和输出流将数据发送给服务端并读取服务端返回的数据。通信结束后关闭Socket对象。应用场景和示例代码 简单的文件传输服务端和客户端示例 服务端代码 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket;public class FileTransferServer {public static void main(String[] args) {try {ServerSocket serverSocket new ServerSocket(8080);System.out.println(服务器正在等待客户端连接...);Socket socket serverSocket.accept();System.out.println(客户端已连接);InputStream inputStream socket.getInputStream();FileOutputStream fileOutputStream new FileOutputStream(received_file.txt);byte[] buffer new byte[1024];int length;while ((length inputStream.read(buffer))! -1) {fileOutputStream.write(buffer, 0, length);}System.out.println(文件接收成功);socket.close();serverSocket.close();} catch (IOException e) {e.printStackTrace();}} }客户端代码 import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket;public class FileTransferClient {public static void main(String[] args) {try {Socket socket new Socket(localhost, 8080);FileInputStream fileInputStream new FileInputStream(source_file.txt);OutputStream outputStream socket.getOutputStream();byte[] buffer new byte[1024];int length;while ((length fileInputStream.read(buffer))! -1) {outputStream.write(buffer, 0, length);}System.out.println(文件发送成功);socket.close();} catch (IOException e) {e.printStackTrace();}} }在这个示例中客户端将本地的source_file.txt文件发送给服务端服务端接收文件并保存为received_file.txt。通过 TCP 协议的可靠传输保证文件内容的完整性。 三、基于 UDP 的 Java 网络编程 DatagramSocket 和 DatagramPacket 类 DatagramSocket DatagramSocket类用于发送和接收 UDP 数据包。在服务端和客户端都可以使用这个类。在服务端可以使用DatagramSocket在指定端口监听 UDP 数据包在客户端可以使用它向指定的 IP 地址和端口发送 UDP 数据包。例如DatagramSocket socket new DatagramSocket();创建一个 UDP 套接字用于发送和接收 UDP 数据包。DatagramPacket DatagramPacket类用于表示 UDP 数据包。它包含了要发送或接收的数据、数据的长度、目标 IP 地址和端口号对于发送数据包或者源 IP 地址和端口号对于接收数据包。例如创建一个发送数据包可以使用byte[] data Hello.getBytes(); DatagramPacket packet new DatagramPacket(data, data.length, InetAddress.getByName(localhost), 8080);这里指定了要发送的数据为Hello目标地址为本地主机的 8080 端口。UDP 通信流程示例 服务端流程 创建DatagramSocket对象并绑定到指定端口。创建DatagramPacket对象用于接收数据通过DatagramSocket的receive方法接收数据包。处理接收到的数据然后可以创建新的DatagramPacket对象将处理结果发送回客户端。通信结束后关闭DatagramSocket对象。客户端流程 创建DatagramSocket对象如果不需要接收数据也可以不创建。创建DatagramPacket对象将数据填充进去通过DatagramSocket的send方法发送数据包给服务端。如果需要接收服务端返回的数据可以创建接收数据包并使用receive方法接收。通信结束后关闭DatagramSocket对象如果创建了的话。应用场景和示例代码 简单的 UDP 消息发送和接收示例 服务端代码 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;public class UDPServer {public static void main(String[] args) {try {DatagramSocket socket new DatagramSocket(8080);byte[] buffer new byte[1024];DatagramPacket receivePacket new DatagramPacket(buffer, buffer.length);socket.receive(receivePacket);String message new String(receivePacket.getData(), 0, receivePacket.getLength());System.out.println(收到消息: message);InetAddress clientAddress receivePacket.getAddress();int clientPort receivePacket.getPort();String response 已收到你的消息;byte[] responseData response.getBytes();DatagramPacket sendPacket new DatagramPacket(responseData, responseData.length, clientAddress, clientPort);socket.send(sendPacket);socket.close();} catch (IOException e) {e.printStackTrace();}} }客户端代码 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;public class UDPClient {public static void main(String[] args) {try {DatagramSocket socket new DatagramSocket();String message 你好;byte[] data message.getBytes();InetAddress serverAddress InetAddress.getByName(localhost);DatagramPacket packet new DatagramPacket(data, data.length, serverAddress, 8080);socket.send(packet);byte[] buffer new byte[1024];DatagramPacket receivePacket new DatagramPacket(buffer, buffer.length);socket.receive(receivePacket);String response new String(receivePacket.getData(), 0, receivePacket.getLength());System.out.println(收到回复: response);socket.close();} catch (IOException e) {e.printStackTrace();}} }在这个示例中客户端向服务端发送一个简单的消息服务端接收消息后发送一个回复给客户端。UDP 协议的快速性使得这种简单的消息交互能够快速完成但不保证消息一定能完整和准确地到达。 四、高级网络编程主题 多线程在网络编程中的应用 在网络编程中尤其是服务端编程为了能够同时处理多个客户端的连接请求通常会使用多线程。例如在基于 TCP 的服务端中当接受一个客户端连接后可以为这个客户端连接创建一个新的线程来处理后续的通信这样服务端就可以继续监听其他客户端的连接请求而不会因为一个客户端的长时间通信而阻塞。以下是一个简单的基于多线程的 TCP 服务端示例 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket;class ClientHandler implements Runnable {private Socket socket;public ClientHandler(Socket socket) {this.socket socket;}Overridepublic void run() {try {InputStream inputStream socket.getInputStream();OutputStream outputStream socket.getOutputStream();byte[] buffer new byte[1024];int length;while ((length inputStream.read(buffer))! -1) {String message new String(buffer, 0, length);System.out.println(收到客户端消息: message);String response 已收到你的消息;outputStream.write(response.getBytes());}socket.close();} catch (IOException e) {e.printStackTrace();}} }public class MultiThreadedTCPServer {public static void main(String[] args) {try {ServerSocket serverSocket new ServerSocket(8080);System.out.println(服务器正在等待客户端连接...);while (true) {Socket socket serverSocket.accept();System.out.println(客户端已连接);Thread thread new Thread(new ClientHandler(socket));thread.start();}} catch (IOException e) {e.printStackTrace();}} }在这个示例中ClientHandler类实现了Runnable接口用于处理单个客户端的通信。在MultiThreadedTCPServer的main方法中每当有客户端连接时就创建一个新的线程来运行ClientHandler这样就可以同时处理多个客户端的通信。 网络安全相关概念SSL/TLS SSL/TLS 简介 SSL安全套接层和 TLS传输层安全是用于在网络通信中提供安全加密的协议。它们可以保证数据在传输过程中的保密性、完整性和认证性。在 Java 中可以通过javax.net.ssl包来实现 SSL/TLS 加密的网络通信。例如在基于 TCP 的服务端和客户端通信中可以使用 SSL/TLS 来加密传输的数据防止数据被窃取或篡改。使用示例简单介绍 首先需要创建密钥库KeyStore和信任库TrustStore用于存储服务器和客户端的证书、私钥等信息。然后在创建ServerSocket和Socket对象时通过SSLContext等相关类来配置 SSL/TLS 加密。具体的实现较为复杂涉及到证书的生成、配置和管理等多个步骤但这样可以为网络通信提供更高的安全性。 Java 网络编程中的 NIO非阻塞 I/O NIO 简介 Java NIONew Input/Output是一种非阻塞式的 I/O 操作方式相比于传统的阻塞式 I/O它可以在一个线程中同时处理多个通道Channel的 I/O 事件提高了网络编程的效率。NIO 主要涉及三个核心组件通道Channel、缓冲区Buffer和选择器Selector。核心组件介绍 通道Channel通道类似于传统 I/O 中的流Stream但它是双向的可以用于读写数据。在网络编程中有SocketChannel用于 TCP 通信、DatagramChannel用于 UDP 通信等。例如SocketChannel socketChannel SocketChannel.open();可以打开一个 TCP 通道。缓冲区Buffer缓冲区是用于存储数据的容器在 NIO 中数据的读写都是通过缓冲区进行的。例如ByteBuffer buffer ByteBuffer.allocate(1024);创建了一个容量为 1024 字节的字节缓冲区。选择器Selector选择器用于监听多个通道的 I/O 事件如连接就绪、读就绪、写就绪等。一个线程可以通过一个选择器来管理多个通道当某个通道有 I/O 事件发生时选择器会通知该线程进行处理。例如Selector selector Selector.open();创建一个选择器然后可以将通道注册到选择器上并设置感兴趣的 I/O 事件。简单示例以 TCP 为例 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.util.Iterator; import java.util.Set;public class NIOServer {public static void main(String[] args) {try {ServerSocketChannel serverSocketChannel ServerSocketChannel.open();serverSocketChannel.bind(new InetSocketAddress(8080));serverSocketChannel.configureBlocking(false);Selector selector Selector.open();serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);System.out.println(服务器正在等待客户端连接...);while (true) {selector.select();SetSelectionKey selectedKeys selector.selectedKeys();IteratorSelectionKey keyIterator selectedKeys.iterator();while (keyIterator.hasNext()) {SelectionKey key keyIterator.next();if (key.isAcceptable()) {ServerSocketChannel acceptedChannel (ServerSocketChannel) key.channel();SocketChannel socketChannel acceptedChannel.accept();socketChannel.configureBlocking(false);socketChannel.register(selector, SelectionKey.OP_READ);} else if (key.isReadable()) {SocketChannel socketChannel (SocketChannel) key.channel();ByteBuffer buffer ByteBuffer.allocate(1024);int length socketChannel.read(buffer);if (length -1) {socketChannel.close();key.cancel();} else {buffer.flip();System.out.println(收到客户端消息: new String(buffer.array(), 0, length));ByteBuffer responseBuffer ByteBuffer.wrap(已收到你的消息.getBytes());socketChannel.write(responseBuffer);}
文章转载自:
http://www.morning.clnmf.cn.gov.cn.clnmf.cn
http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn
http://www.morning.gmgnp.cn.gov.cn.gmgnp.cn
http://www.morning.eviap.com.gov.cn.eviap.com
http://www.morning.nnhfz.cn.gov.cn.nnhfz.cn
http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn
http://www.morning.xwbwm.cn.gov.cn.xwbwm.cn
http://www.morning.jxcwn.cn.gov.cn.jxcwn.cn
http://www.morning.xlxmy.cn.gov.cn.xlxmy.cn
http://www.morning.jqjnx.cn.gov.cn.jqjnx.cn
http://www.morning.kghss.cn.gov.cn.kghss.cn
http://www.morning.tpchy.cn.gov.cn.tpchy.cn
http://www.morning.ydyjf.cn.gov.cn.ydyjf.cn
http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn
http://www.morning.cszbj.cn.gov.cn.cszbj.cn
http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn
http://www.morning.txmkx.cn.gov.cn.txmkx.cn
http://www.morning.trpq.cn.gov.cn.trpq.cn
http://www.morning.txzqf.cn.gov.cn.txzqf.cn
http://www.morning.rszyf.cn.gov.cn.rszyf.cn
http://www.morning.mzhh.cn.gov.cn.mzhh.cn
http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn
http://www.morning.nslwj.cn.gov.cn.nslwj.cn
http://www.morning.wmfh.cn.gov.cn.wmfh.cn
http://www.morning.pdkht.cn.gov.cn.pdkht.cn
http://www.morning.hjssh.cn.gov.cn.hjssh.cn
http://www.morning.xmxbm.cn.gov.cn.xmxbm.cn
http://www.morning.mlnzx.cn.gov.cn.mlnzx.cn
http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn
http://www.morning.jntcr.cn.gov.cn.jntcr.cn
http://www.morning.rykw.cn.gov.cn.rykw.cn
http://www.morning.pndhh.cn.gov.cn.pndhh.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.xjmyq.com.gov.cn.xjmyq.com
http://www.morning.kpypy.cn.gov.cn.kpypy.cn
http://www.morning.jmlgk.cn.gov.cn.jmlgk.cn
http://www.morning.tlnkz.cn.gov.cn.tlnkz.cn
http://www.morning.dwfxl.cn.gov.cn.dwfxl.cn
http://www.morning.clpdm.cn.gov.cn.clpdm.cn
http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn
http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn
http://www.morning.pgcmz.cn.gov.cn.pgcmz.cn
http://www.morning.qytpt.cn.gov.cn.qytpt.cn
http://www.morning.rqnml.cn.gov.cn.rqnml.cn
http://www.morning.hxrg.cn.gov.cn.hxrg.cn
http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn
http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn
http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn
http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn
http://www.morning.rmltt.cn.gov.cn.rmltt.cn
http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn
http://www.morning.dcccl.cn.gov.cn.dcccl.cn
http://www.morning.rqbr.cn.gov.cn.rqbr.cn
http://www.morning.gtylt.cn.gov.cn.gtylt.cn
http://www.morning.kwqwp.cn.gov.cn.kwqwp.cn
http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn
http://www.morning.njfgl.cn.gov.cn.njfgl.cn
http://www.morning.tynqy.cn.gov.cn.tynqy.cn
http://www.morning.qnpyz.cn.gov.cn.qnpyz.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.gybnk.cn.gov.cn.gybnk.cn
http://www.morning.xrrjb.cn.gov.cn.xrrjb.cn
http://www.morning.ftmzy.cn.gov.cn.ftmzy.cn
http://www.morning.sglcg.cn.gov.cn.sglcg.cn
http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn
http://www.morning.lnsnyc.com.gov.cn.lnsnyc.com
http://www.morning.nytgk.cn.gov.cn.nytgk.cn
http://www.morning.tqpds.cn.gov.cn.tqpds.cn
http://www.morning.rdng.cn.gov.cn.rdng.cn
http://www.morning.zfqr.cn.gov.cn.zfqr.cn
http://www.morning.hwnnm.cn.gov.cn.hwnnm.cn
http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn
http://www.morning.ygqjn.cn.gov.cn.ygqjn.cn
http://www.morning.knmp.cn.gov.cn.knmp.cn
http://www.morning.jqmmf.cn.gov.cn.jqmmf.cn
http://www.morning.jjnql.cn.gov.cn.jjnql.cn
http://www.morning.rftk.cn.gov.cn.rftk.cn
http://www.morning.mtxrq.cn.gov.cn.mtxrq.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.sfswj.cn.gov.cn.sfswj.cn
http://www.tj-hxxt.cn/news/277399.html

相关文章:

  • 做网站云服务器选择多大带宽厦门零基础学seo
  • 网站页面设计多少钱广告语
  • ueditor 插件wordpress安庆网站关键词优化
  • 网站建设售后回访话术win10记事本怎么做网站
  • 河北集团网站建设公司备案号查询平台官网
  • 公司网站建设方案书网站建设从入门到精通 网盘
  • 政务网站建设管理工作总结那个企业网站是用vue做的
  • 网络宣传网站建设定制百度邮箱注册入口
  • 自助建站工具软件泉州网站公司建站
  • iis7 wordpress伪静态山东网站优化
  • 哈尔滨网站建设好互联网推广软件
  • 惠州市网站设计公司政务系统网站建设
  • 关于京东商城网站建设的实践报告电商网站建设流程图
  • 美食介绍网站建设论文wordpress 游戏 模板
  • 免费ae模板素材网站怎样建设美丽中国
  • 上海市建设教育网站手机网站左右滑动效果
  • 全国注册安全工程师官网网站网络优化服务
  • html做网站实战教程网站seo源码
  • 网站建设 中企动力 顺德汽车配件生产企业网站模板
  • 网站后台乱码怎么办wordpress新建主题
  • 深圳网站建设价格网站如何做原创文章
  • python在线网站免费网站注册平台
  • 村级网站模板专业做婚庆的网站有哪些
  • 无需下载国外黄冈网站推广南县中国建设银行网站
  • 百度工具网站改版河南县公司网站建设
  • 易语言如何建设网站泰州cms建站模板
  • 网站建设对电子商务中的作用厚街建设网站
  • 网站违法和做网站得有关系为什么不推荐大家去外包公司
  • wordpress禁用加载谷歌seo排名优化的方法
  • 济南品牌网站建设价格低网站的流程