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

phpcms双语网站怎么做济南哪家网站技术比较高

phpcms双语网站怎么做,济南哪家网站技术比较高,冠县网站设计,py怎么做网站一.过程: 1.建立连接(不是握手),虽然内核中的连接有很多,但是在应用程序中,要一个一个处理. 2. 获取任务:使用ServerSocket.accept()方法,作用是把内核中的连接获取到应用程序中,这个过程类似于生产者消费者模型. 3. 使用缓冲的时候,注意全缓冲和行缓冲. 4.注意关闭文件资源…

一.过程:

1.建立连接(不是握手),虽然内核中的连接有很多,但是在应用程序中,要一个一个处理.

2. 获取任务:使用ServerSocket.accept()方法,作用是把内核中的连接获取到应用程序中,这个过程类似于生产者消费者模型.

 

3. 使用缓冲的时候,注意全缓冲和行缓冲.

4.注意关闭文件资源(client.socket.close()).

 二.问题处理:

1. 

解决方法:使用多线程.

2.C10M问题:并发量太大.

解决方案:开源节流.

开源:创建线程.

节流:I/O多路复用,I/O多路转接.(java NIO)

三.代码实现:

1.回显服务器:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class EchoTcpServer {private ServerSocket serverSocket = null;private ExecutorService service = Executors.newCachedThreadPool();// 手动设置端口号public EchoTcpServer(int port) throws IOException {serverSocket = new ServerSocket(port);}// 启动服务器public void start() throws IOException {System.out.println("服务器启动");while (true) {Socket clientSocket = serverSocket.accept();
//             processConnection(clientSocket);//            Thread thread = new Thread(() -> {
//                try {
//                    processConnection(clientSocket);
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            });
//            thread.start();service.submit(() -> {try {processConnection(clientSocket);} catch (IOException e) {e.printStackTrace();}});}}// 处理一个连接private void processConnection(Socket clientSocket) throws IOException {System.out.println("[" + clientSocket.getInetAddress().toString() + " " + clientSocket.getPort() + "]客户端已上线");// 接下来进行读取请求,计算响应,返回响应三步走策略try (InputStream inputStream = clientSocket.getInputStream();OutputStream outputStream = clientSocket.getOutputStream()) {Scanner scanner = new Scanner(inputStream);// 一次连接可能会伴随多次请求与回应while (true) {// 1.读取请求if (!scanner.hasNext()) {// 读取结束System.out.println("[" + clientSocket.getInetAddress().toString() + " " + clientSocket.getPort() + "]客户端已下线");return;}// Tcp的数据是以字节流的形式发送的,这里默认发送文本文件.String request = scanner.next();// 2.处理请求String response = process(request);// 3.返回结果PrintWriter printWriter = new PrintWriter(outputStream);printWriter.println(response);// 刷新printWriter.flush();System.out.println("[" + clientSocket.getInetAddress().toString() + " " + 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 {EchoTcpServer server = new EchoTcpServer(1999);server.start();}
}

2.回显用户端:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;public class EchoTcpClient {private Socket socket = null;public EchoTcpClient(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.println("->");String request = scannerConsole.next();// 发送请求PrintWriter printWriter = new PrintWriter(outputStream);printWriter.println(request);printWriter.flush();// 接收响应Scanner scannerNetwork = new Scanner(inputStream);String response = scannerNetwork.next();// 打印响应System.out.println(response);}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws IOException {EchoTcpClient client = new EchoTcpClient("127.0.0.1", 1999);client.start();}
}

3.字典服务器:

import java.io.IOException;
import java.net.SocketException;
import java.util.HashMap;
import java.util.Map;public class DictionaryTcpServer extends EchoTcpServer{private Map<String, String> dictionary = new HashMap<>();public DictionaryTcpServer(int port) throws IOException {super(port);dictionary.put("I", "我");dictionary.put("love", "爱");dictionary.put("China", "中国");}@Overridepublic String process(String request) {return dictionary.getOrDefault(request, "没找到");}public static void main(String[] args) throws IOException {EchoTcpServer server = new DictionaryTcpServer(1999);server.start();}
}

http://www.yayakq.cn/news/499279/

相关文章:

  • 手机网站有什么区别wordpress顶部广告
  • 上海营销网站制作起点签约的书网站给做封面吗
  • 十堰秦楚网 十堰新闻门户网站互动科技 网站
  • 成都定制网站建干事儿网网站开发
  • 南安市网站建设重庆地区专业做网站的公司
  • destoon 网站后台显示不出模板做网站需要准备的素材
  • 电商网站竞价推广的策略公司企业logo
  • 汕头网站建设设计价格手机端网站开发要注意什么
  • 湘潭网站建设磐石网络上班时间深圳建站公司专业公司
  • 网站seo李守洪排名大师最好用的手机编程软件
  • 个人网站域名怎么起为公司做网站
  • 网站怎么做口碑外贸出口流程12步骤图
  • 什么类型的网站容易被百度抓取谷歌seo网络营销价格
  • 网站开发大概多少钱现在新闻做的最好的网站
  • 建设银行东营分行网站太原电脑培训班哪家好
  • 网站建设新模式如何编写网站后台
  • 医疗网站建设效果电商网站设计公司有哪些
  • 网站开发框架技术电商网站那些功能用到静态化功能
  • 北京怎样建网站WordPress中菜单变色
  • 卖花网站模板西安做网站找缑阳建
  • 网站开发流程到上线网站建设费税率多少钱
  • 重庆网站免费优化石家庄网站建设公司
  • 网站首页建设公司江苏省工程建设信息官方网
  • 建设工程交易服务中心网站建设优化解析
  • 网站开发目前主要用什么技术宣传片拍摄方案范本
  • 长沙给中小企业做网站的公司网站开发工程师好不好
  • 建筑行业网站开发网站与网页区别
  • 找人做网站被骗怎么办重庆市建设工程造价信息
  • 德清做网站wordpress rss 添加
  • 北京百度网站排名优化汽车广告设计图片