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

网站开发三大元素营销策划方案论文

网站开发三大元素,营销策划方案论文,建设部网站官网 造价鉴定,自己做网站需要什么个人主页#xff1a;兜里有颗棉花糖 欢迎 点赞#x1f44d; 收藏✨ 留言✉ 加关注#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得#xff0c;欢迎大家在评论区交流讨论#x1f48c; 目录 一、TCP实… 个人主页兜里有颗棉花糖 欢迎 点赞 收藏✨ 留言✉ 加关注本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得欢迎大家在评论区交流讨论 目录 一、TCP实现回显服务器二、服务器端三、客户端四、运行结果 一、TCP实现回显服务器 TCP提供的API主要有两个类Socket既会给服务器使用也会给客户端使用和ServerSocket一般为服务器使用。TCP将数据分割成以字节为单位的小数据块进行传输一个TCP数据报就是一个字节数组byte[]。 二、服务器端 在服务器端创建一个ServerSocket对象并绑定一个端口号。 进入while循环 注意这里和Udp实现回显服务器不同的是,Tcp进入循环之后并不是读取客户端请求,而是先处理客户端的连接Tcp是一个有连接的协议(Udp是没有连接的协议),所以有连接的话会优先处理连接连接可以理解为客户端和服务器彼此之间保留对方的信息。一个服务器要应对很多客户端,在服务器内核中有很多客户端的连接,在应用程序层面我们需要对这些连接进行一一处理这里服务器内核中的连接就像一个一个的待办事项一样,这些待办事项在队列这样的数据结构中所以应用程序需要一一完成这样的任务这个过程类似于生产者消费者模型。 serverSocket.accept()方法可以将服务器内核中的连接获取到应用程序中 当程序启动之后就会立刻执行到accept方法在调用serverSocket.accept()方法之后如果此时没有客户端连接请求到达该方法会一直阻塞直到有客户端与服务器成功建立连接才会继续执行。 现在来解释这里的返回值问题serverSocket.accept()方法会返回一个Socket对象我们已经直到accept方法会把服务器内核已经建立好的连接拿到应用程序中但是accpet方法的返回值并非是一个Connection这样的对象而是Socket这样的对象。 这里返回的Socket对象相当于一个耳麦既可以发出自己的声音也可以听到对方的声音我们不需要管对方是谁我们只需要对着这个耳麦说话就行。然后我们通过Socket对象与对方进行网络通信 Socket和ServerSocket ServerSocket类用于在服务器端创建一个服务器套接字它监听指定的端口等待客户端的连接请求通过调用ServerSocket的accept()方法服务器监听指定端口直到有客户端发起连接请求accept()方法才返回一个表示客户端连接的Socket对象。通过这个Socket对象可以进行与客户端的通信。 Socket类用于创建一个客户端套接字它是客户端与服务器进行通信的终点通过调用Socket的构造方法指定服务器的主机名和端口号可以与服务器建立连接。 总的来说ServerSocket用于监听端口接受客户端的连接请求并返回一个Socket对象而Socket用于与服务器建立连接并进行数据的读写操作。通过这两个类的配合实现了TCP协议下的客户端与服务器之间的通信。 服务器端代码如下 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; 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;private ExecutorService service Executors.newCachedThreadPool();// 绑定端口号public TcpEchoServer(int port) throws IOException {serverSocket new ServerSocket(port);}// 启动服务器public void start() throws IOException {System.out.println(服务器启动!!!);while(true) {// 注意这里和Udp不同的是,Tcp进入循环之后并不是读取客户端请求,而是先处理客户端的连接// Tcp是一个有连接的协议(Udp是没有连接的协议),所以有连接的话会优先处理连接// 连接可以理解为客户端和服务器彼此之间保留对方的信息// 一个服务器要应对很多客户端,在服务器内核中有很多客户端的连接,在应用程序层面我们需要对这些连接进行一一处理// 这里服务器内核中的连接就像一个一个的待办事项一样,这些待办事项在队列这样的数据结构中// 所以应用程序需要一一完成这样的任务Socket clientSocket serverSocket.accept(); // Thread t new Thread(() - { // processConnection(clientSocket); // }); // t.start();service.submit(new Runnable() {Overridepublic void run() {processConnection(clientSocket);}});}}// 通过这个方法来处理连接的逻辑private void processConnection(Socket clientSocket) {System.out.printf([%s:%d] 客户端上线啦!!!\n,clientSocket.getInetAddress().toString(),clientSocket.getPort());// 接下来读取请求根据请求计算响应最后再返回响应// Socket对象内部包含了两个字节流对象我们需要先获取到这个字节流对象然后再完成后续的读写操作try (InputStream inputStream clientSocket.getInputStream();OutputStream outputStream clientSocket.getOutputStream()) {// 一次连接中可以涉及到多次请求和响应while( true ) {// 第一步:读取请求并进行解析// 这里为了读取方便,我们直接使用ScannerScanner scanner new Scanner(inputStream);if(!scanner.hasNext()) {// 读取完毕客户端下线System.out.printf([%s:%d] 客户端下线!!!\n],clientSocket.getInetAddress().toString(),clientSocket.getPort());break;}// 这里我们约定客户端输入来的请求是文本数据同时以空白符作为分割String request scanner.next();// 第二步:根据请求计算响应String response process(request);// 第三步:把响应写回给客户端,把OutputStream使用PrinterWriter进行包装方法进行数据的传输PrintWriter writer new PrintWriter(outputStream);writer.println(response);// 刷新缓冲区writer.flush();// 打印当前的请求详情System.out.printf([%s:%d] req: %s, resp: %s\n,clientSocket.getInetAddress().toString(),clientSocket.getPort(),request,response);}} catch (IOException e) {e.printStackTrace();} finally {try {clientSocket.close();} catch (IOException e) {// 这里必须确保Socket能够被关闭e.printStackTrace();}}}private String process(String request) {return request;}public static void main(String[] args) throws IOException {TcpEchoServer server new TcpEchoServer(9090);server.start();} }三、客户端 关于回显服务器这里我们来看客户端的代码是如何进行编写的主要有4个步骤如下 第一步从控制台上读取用户的输入。第二部把输入的内容构造成请求并将其发送给服务器。第三步从服务器读取响应最后一步把响应显示到控制台上。 客户端代码如下 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() {System.out.println(客户端启动!!!);Scanner scannerConsole new Scanner(System.in);try(InputStream inputStream socket.getInputStream();OutputStream outputStream socket.getOutputStream()) {while(true) {// 从控制台输入一个字符串System.out.print(- );String request scannerConsole.next();// 把请求发送给服务器PrintWriter printWriter new PrintWriter(outputStream);// 使用println加上换行,后续服务器读取请求的时候就可以使用scanner.next来获取了printWriter.println(request);// 调用flush确保数据发送出去了printWriter.flush();// 从服务器中读取响应Scanner scannerNetwort new Scanner(inputStream);String response scannerNetwort.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();} }四、运行结果 运行结果如下 本文到这里就结束了希望友友们可以支持一下一键三连哈。嗯就到这里吧再见啦
http://www.zqtcl.cn/news/674509/

相关文章:

  • 信用门户网站建设观摩惠州专业做网站
  • wordpress打开网站前广告佛山百度推广seo服务
  • 松北建设局网站vps 用ip可以访问网站么
  • 网站图片内容免费开源crm
  • wordpress调用分类栏目wordpress文章优化
  • 建站公司上海企业官网模板下载
  • 网站建设推广话术wordpress 不显示缩略图
  • 企业电子商务网站建设和一般百拓公司做网站怎么样
  • 吉林网站建设司上海什么做网站的公司比较好
  • 吉安市建设规划局网站jsp wordpress
  • 建设银行贵金属网站微信小程序注册后怎么使用
  • 如何做律师网站河南建网站 优帮云
  • 云阳如何做网站网站建设旅游
  • 推荐一个简单的网站制作单位网站服务的建设及维护
  • tp5网站文档归档怎么做网站 信用卡支付接口
  • phpcms 企业网站网站建设中单页代码
  • 坑梓网站建设方案网络编程技术及应用
  • 电子商务网站建设 价格新媒体运营需要具备哪些能力
  • 做生存分析的网站电商网站运营建设的目标
  • 佛山 做网站邮箱官方网站注册
  • 生成flash的网站源码表白二维码制作网站
  • 定做专业营销型网站网站开发应用
  • 万盛建设局官方网站如何用群晖nas做网站
  • 建设装饰网站郑州惠济区建设局网站
  • 网站做标题有用吗网站优化多少钱
  • 婚庆设备租赁网站源码如何进行网站的建设和维护
  • 青岛做网站公wordpress文章付费阅读
  • 小灯具网站建设方案360优化大师
  • 开发公司与物业公司前期合同网站优化的推广
  • 汉堡云虚拟主机aso安卓优化公司