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

网站组建新媒体运营和ui设计哪个好

网站组建,新媒体运营和ui设计哪个好,wordpress怎样建立多站点,wordpress被百度搜到4.2.4 可中断套接字 SocketChannel可以中断套接字 SocketChannel channel.open(new InetSocketAddress(host,port)); 通道(channel)并没有与之相关联的流#xff0c;实际上#xff0c;所拥有的read和write方法都是通过Buffer对象实现的。 如果不想处理缓冲区#xff0c;…4.2.4 可中断套接字 SocketChannel可以中断套接字 SocketChannel channel.open(new InetSocketAddress(host,port)); 通道(channel)并没有与之相关联的流实际上所拥有的read和write方法都是通过Buffer对象实现的。 如果不想处理缓冲区可以使用Scanner从SocketChannel中读取信息。 Scanner有一个带ReadableByteChannel参数的构造器。 var in new Scanner(channel,StandardCharsets.UTF-8); 通过调用静态方法Channels.newOutputStream可以将通道转换成输出流。 OutputStream outStream Channels.newOutputStream(channel); 对比中断套接字和阻塞套接字 package 第4章网络.interruptible;import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.HeadlessException; import java.awt.Toolkit; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; import java.nio.channels.SocketChannel; import java.nio.charset.StandardCharsets; import java.util.Scanner;import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea;public class InterruptibleSocketTest {public static void main(String[] args) {var frame new InterruptibleSocketFrame();frame.setTitle(InterruptibleSocketTest); // frame.setSize(400, 400);//初始打开为屏幕中央Toolkit toolkit Toolkit.getDefaultToolkit();Dimension screenSize toolkit.getScreenSize();int screenWidth (int) screenSize.getWidth();int screenHeight (int) screenSize.getHeight();//计算窗口位置int x (screenWidth - frame.getWidth())/2;int y (screenHeight - frame.getHeight())/2;frame.setLocation(x, y);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}} class InterruptibleSocketFrame extends JFrame {private Scanner in;private JButton interruptibleButton;private JButton blockingButton;private JButton cancelButton;private JTextArea messages;private TestServer server;private Thread connectThread;public InterruptibleSocketFrame() throws HeadlessException {var northPanel new JPanel();add(northPanel,BorderLayout.NORTH);final int TEXT_ROWS 20;final int TEXT_COLUMNS 60;messages new JTextArea(TEXT_ROWS, TEXT_COLUMNS);add(new JScrollPane(messages));interruptibleButton new JButton(可中断);blockingButton new JButton(阻塞中);northPanel.add(interruptibleButton);northPanel.add(blockingButton);interruptibleButton.addActionListener(e - {interruptibleButton.setEnabled(false);blockingButton.setEnabled(false);cancelButton.setEnabled(true);connectThread new Thread(() - {try {connectInterruptibly();} catch (IOException e1) {messages.append(\nInterruptibleSocketTest.connectInterruptibly: e);}});connectThread.start();});blockingButton.addActionListener(e - {interruptibleButton.setEnabled(false);blockingButton.setEnabled(false);cancelButton.setEnabled(true);connectThread new Thread(() - {try {connectBlocking();} catch (IOException e1) {messages.append(\nInterruptibleSocketTest.connectBlocking: e);}});connectThread.start();});cancelButton new JButton(取消);cancelButton.setEnabled(false);northPanel.add(cancelButton);cancelButton.addActionListener(e - {connectThread.interrupt();cancelButton.setEnabled(false);});server new TestServer();new Thread(server).start();pack();}//连接测试服务器用可中断IOpublic void connectInterruptibly() throws IOException {messages.append(可中断:\n);try (SocketChannel channel SocketChannel.open(new InetSocketAddress(localhost,8189))){in new Scanner(channel,StandardCharsets.UTF_8);while(!Thread.currentThread().isInterrupted()) {messages.append(读取 );if(in.hasNextLine()) {String line in.nextLine();messages.append(line);messages.append(\n);}}} finally {EventQueue.invokeLater(() - {messages.append(管道关闭\n);interruptibleButton.setEnabled(true);blockingButton.setEnabled(true);});}}//连接测试服务器用阻塞IOpublic void connectBlocking() throws UnknownHostException, IOException {messages.append(阻塞中:\n);try (var sock new Socket(localhost,8189)){in new Scanner(sock.getInputStream(),StandardCharsets.UTF_8);while(!Thread.currentThread().isInterrupted()) {messages.append(读取 );if (in.hasNextLine()) {String line in.nextLine();messages.append(line);messages.append(\n);}}} finally {EventQueue.invokeLater(() - {messages.append(套接字关闭\n);interruptibleButton.setEnabled(true);blockingButton.setEnabled(true);});}}class TestServer implements Runnable {Overridepublic void run() {try(var s new ServerSocket(8189)){while (true) {Socket incoming s.accept();Runnable r new TestServerHandler(incoming);new Thread(r).start();}} catch (IOException e) {messages.append(\nTestServer.run: e);}}}class TestServerHandler implements Runnable{private Socket incoming;private int counter;public TestServerHandler(Socket incoming) {super();this.incoming incoming;}Overridepublic void run() {OutputStream outStream;try {try {outStream incoming.getOutputStream();var out new PrintWriter(new OutputStreamWriter(outStream, StandardCharsets.UTF_8),true);while(counter 100) {counter;if(counter10) out.println(counter);Thread.sleep(100);}}finally {incoming.close();messages.append(关闭服务\n);}} catch (Exception e) {messages.append(\nTestServerHandler.run:e);}}} }
http://www.hkea.cn/news/14482712/

相关文章:

  • 外贸一般在哪些网站wordpress程序员主题
  • 重生北京上大学开网吧做网站的小说建程网官网平台
  • 邯郸wap网站建设费用好网站目录
  • 怎么将网站做成html玉林专业网站建设
  • 怎么看网站做的好不好wordpress做人事网站
  • 网站建设怎么建设网站关键词排行查询
  • 转塘有做网站的吗主题教育网站建立
  • 做网站服务怎么赚钱wordpress注册页面修改
  • 网站建设 律师wordpress导航菜单加图片
  • 用群晖做网站wordpress插件的语言设定
  • 甘肃省水利厅引洮工程建设管理局网站做网站需要服务器和什么软件
  • 专业的设计网站有哪些西安百度seo
  • 卖视频会员个人网站怎么做成都手机网站建设哪
  • musik wordpress自媒体seo优化
  • 建设网站备案与不备案区别软件开发需要用什么软件
  • 海口网站建设平台网站弹窗页面是谁做的
  • 关系营销案例东莞网站优化中易
  • 东莞常平做网站公司wordpress数据库修改登陆密码
  • 做网站字号多大房产政策最新消息
  • 建设银行办信用卡网站山东泰润建设集团网站
  • 如何做泰国网站海南住房建设厅网站
  • 西宁专业做网站东莞松山湖邮编
  • 广州网站开发创意设计广东省建设安全中心网站
  • 全球购物官方网站有哪些刚建的网站百度搜不到
  • 网站引用优酷长沙室内设计学校
  • 泰安高新区建设局网站网站托管服务商查询
  • 建立什么网站做网站推销手表
  • 网站建设技术保证怎么写专业精准网络营销推广
  • app设计网站有哪些功能装修报价单明细表
  • 装修网站论坛昆山做百度网站