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

网站规划与开发技术属于什么大类seo攻略

网站规划与开发技术属于什么大类,seo攻略,广告发布包括哪些,做网站博客怎么推广TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议。与 UDP 不同,TCP 保证了数据的顺序、可靠性和完整性,适用于需要可靠传输的应用场景,如文件传输、网页浏览等。本文将基于 Java 实现一个简单的…

TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议。与 UDP 不同,TCP 保证了数据的顺序、可靠性和完整性,适用于需要可靠传输的应用场景,如文件传输、网页浏览等。本文将基于 Java 实现一个简单的 TCP Echo 服务器和客户端,并通过代码总结相关的知识点。


1. TCP Echo 服务器

1.1 服务器代码结构

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class TcpEchoServer {private ServerSocket serverSocket = null;public TcpEchoServer(int port) throws IOException {serverSocket = new ServerSocket(port);}public void start() throws IOException {System.out.println("服务器启动!");ExecutorService executorService = Executors.newCachedThreadPool();while (true) {// 通过 accept 方法,把内核中已经建立好的连接拿到应用程序中Socket clientSocket = serverSocket.accept();// 使用线程池处理客户端连接executorService.submit(() -> {try {processConnection(clientSocket);} catch (IOException e) {e.printStackTrace();}});}}// 通过这个方法,来处理连接public void processConnection(Socket clientSocket) throws IOException {// 打印客户端上线日志System.out.printf("[%s:%d] 客户端上线!\n", clientSocket.getInetAddress(), clientSocket.getPort());try (InputStream inputStream = clientSocket.getInputStream();OutputStream outputStream = clientSocket.getOutputStream()) {// 使用 Scanner 读取客户端请求Scanner scanner = new Scanner(inputStream);while (true) {if (!scanner.hasNext()) {// 连接断开System.out.printf("[%s:%d] 客户端下线!\n", clientSocket.getInetAddress(), clientSocket.getPort());break;}// 1. 读取请求并解析String request = scanner.next();// 2. 根据请求计算响应String response = process(request);// 3. 把响应写回到客户端PrintWriter printWriter = new PrintWriter(outputStream);printWriter.println(response);printWriter.flush();// 4. 打印请求交互的内容System.out.printf("[%s:%d] req=%s, resp=%s\n", clientSocket.getInetAddress(), clientSocket.getPort(),request, response);}} catch (IOException e) {e.printStackTrace();} finally {clientSocket.close();}}public String process(String request) {return request;}public static void main(String[] args) throws IOException {TcpEchoServer server = new TcpEchoServer(9090);server.start();}
}
1.2 服务器代码解析
ServerSocket:ServerSocket 是 Java 中用于监听客户端连接的类。服务器通过 ServerSocket 绑定到指定端口,等待客户端连接。Socket:Socket 是 Java 中用于表示客户端连接的类。服务器通过 serverSocket.accept() 方法获取客户端的连接,并返回一个 Socket 对象。线程池:为了支持多客户端并发连接,服务器使用 ExecutorService 线程池来处理每个客户端的请求。Executors.newCachedThreadPool() 创建了一个可缓存的线程池,根据需要创建新线程。processConnection():该方法用于处理客户端连接。它通过 InputStream 和 OutputStream 与客户端进行数据交互。Scanner:Scanner 用于从 InputStream 中读取客户端发送的请求数据。PrintWriter:PrintWriter 用于将响应数据写入 OutputStream,并发送给客户端。日志打印:服务器在处理每个请求后,会打印客户端的地址、端口、请求内容和响应内容,方便调试和监控。2. TCP Echo 客户端
2.1 客户端代码结构
java复制import java.io.*;
import java.net.Socket;
import java.util.Scanner;public class TcpEchoClient {private Socket socket = null;public TcpEchoClient(String serverIP, int serverPort) throws IOException {socket = new Socket(serverIP, serverPort);}public void start() {Scanner scanner = new Scanner(System.in);try (InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream()) {PrintWriter writer = new PrintWriter(outputStream);Scanner scannerNetwork = new Scanner(inputStream);while (true) {// 从控制台读取用户输入System.out.print("-> ");String request = scanner.next();// 发送请求到服务器writer.println(request);writer.flush();// 读取服务器响应String response = scannerNetwork.next();System.out.println(response);}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws IOException {TcpEchoClient client = new TcpEchoClient("127.0.0.1", 9090);client.start();}
}

2. TCP Echo 客户端

2.1 客户端代码结构

import java.io.*;
import java.net.Socket;
import java.util.Scanner;public class TcpEchoClient {private Socket socket = null;public TcpEchoClient(String serverIP, int serverPort) throws IOException {socket = new Socket(serverIP, serverPort);}public void start() {Scanner scanner = new Scanner(System.in);try (InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream()) {PrintWriter writer = new PrintWriter(outputStream);Scanner scannerNetwork = new Scanner(inputStream);while (true) {// 从控制台读取用户输入System.out.print("-> ");String request = scanner.next();// 发送请求到服务器writer.println(request);writer.flush();// 读取服务器响应String response = scannerNetwork.next();System.out.println(response);}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws IOException {TcpEchoClient client = new TcpEchoClient("127.0.0.1", 9090);client.start();}
}

2.2 客户端代码解析

  1. Socket:客户端通过 Socket 连接到服务器。Socket 的构造函数需要指定服务器的 IP 地址和端口号。

  2. InputStream 和 OutputStream:客户端通过 InputStream 读取服务器返回的响应数据,通过 OutputStream 发送请求数据。

  3. PrintWriterPrintWriter 用于将请求数据写入 OutputStream,并发送给服务器。

  4. ScannerScanner 用于从控制台读取用户输入,并从 InputStream 中读取服务器返回的响应数据。

  5. 循环交互:客户端通过一个无限循环,不断从控制台读取用户输入,发送请求并接收响应。


3. 总结

通过实现这个简单的 TCP Echo 服务器和客户端,我们可以总结出以下知识点:

  1. TCP 协议的特点:TCP 是一种面向连接的协议,保证了数据的顺序、可靠性和完整性,适用于需要可靠传输的应用场景。

  2. ServerSocket 和 Socket:这两个类是 Java 中实现 TCP 通信的核心类。ServerSocket 用于监听客户端连接,Socket 用于表示客户端连接。

  3. 多线程处理:为了支持多客户端并发连接,服务器使用线程池来处理每个客户端的请求。

  4. 流操作InputStream 和 OutputStream 是 Java 中用于读写数据的核心类。通过 Scanner 和 PrintWriter,可以方便地进行文本数据的读写。

  5. 日志与调试:在实际开发中,打印日志是非常重要的,它可以帮助我们监控程序的运行状态,排查问题。

  6. Echo 服务器的应用:Echo 服务器是一种简单的网络服务,它将客户端发送的数据原样返回。虽然简单,但它可以帮助我们理解网络通信的基本原理。


文章转载自:

http://SJNnFl1x.rbkmL.cn
http://NngxOodP.rbkmL.cn
http://JOFN7CRR.rbkmL.cn
http://RlqvkVuo.rbkmL.cn
http://ImrbwezL.rbkmL.cn
http://f4m9KB1x.rbkmL.cn
http://bdd2CJxw.rbkmL.cn
http://MhdNWM6G.rbkmL.cn
http://GmJkY1IW.rbkmL.cn
http://ztxwy5tO.rbkmL.cn
http://nWOAAAZU.rbkmL.cn
http://umgNCFPK.rbkmL.cn
http://BQBPSJUz.rbkmL.cn
http://15Xj4l4i.rbkmL.cn
http://7aesQQ4k.rbkmL.cn
http://o0KxnlvZ.rbkmL.cn
http://1AtYtg8l.rbkmL.cn
http://tdbENytV.rbkmL.cn
http://x6sqz55I.rbkmL.cn
http://lkeixztD.rbkmL.cn
http://NNawnKsx.rbkmL.cn
http://XXLhKBQ7.rbkmL.cn
http://FaoGH5Wb.rbkmL.cn
http://VkQvA6KM.rbkmL.cn
http://TgjkO5Bc.rbkmL.cn
http://nCGlBNqJ.rbkmL.cn
http://GuKFfaKa.rbkmL.cn
http://GbUrK8OG.rbkmL.cn
http://CCWPmQmN.rbkmL.cn
http://QAh4D9bH.rbkmL.cn
http://www.dtcms.com/wzjs/670040.html

相关文章:

  • 成都网站推广营销设计太仓网站建设网站推广
  • 深圳网站建设 乐云践新做网站需要懂什么技术
  • wordpress用外部图片南昌网站排名优化软件
  • 视频网站大数据建设群晖wordpress搭建网站
  • 莱芜住房和城乡建设厅网站网站开发和上传中错误的是
  • 家居品牌策划公司江苏企业建网站排名优化
  • 银川市做网站的公司有专门教做儿童美食的网站吗
  • jsp网站开发实训万维网如何建设网站
  • 网站域名需icp备案吗网站建设咨询问卷
  • 深圳网站关键词优化公司哪家好免费网站应用软件
  • 网站建设itcask安徽省建设工程质量协会网站
  • 东营网站搜索引擎优化学做网站网
  • 怎么做一个属于自己的网站智能建造师证书的含金量
  • 学校网站建设评审会议通知免费网站建设基础步骤
  • 广西建设网站网址多少钱长春网站建设小程
  • 北京网站建设主页企业为什么要建设网站
  • 温州网站优化定制wordpress php解密算法
  • 如何建设网站教程镇海淘宝网站建设
  • 网站空间 流量高端建站咨询
  • 天津网站建设需要多少钱注册网站给谁交钱
  • 做外贸网站的都有哪些类型的公司电商分销系统
  • 网站建设有关模板视频制作网站素材
  • 网站开发简历项目经验南宁网站建设产品
  • 合肥大型网站设计免费创业平台
  • dw是做网站的软件吗学习网站建设好找工作吗
  • 哪有做奇石网站汕头专业建站
  • 高大上企业网站衡水网站制作与推广
  • 注册外国网站大学学校网站建设方案
  • 如何做好网站建设的设计布局江门网站优化方案
  • 临沂网站优化如何培训网页制作机构