Dart的套接字与web套接字

简介: <div class="markdown_views"><h2 id="套接字">套接字</h2><p>首先在项目中建三个dart文件,如下图</p><p><img title="" alt="这里写图片描述" src="http://img.blog.csdn.net/20150619144014658"></p><p>main.dart中的代码如下</p>

套接字

首先在项目中建三个dart文件,如下图

这里写图片描述

main.dart中的代码如下

import 'dart:io';
import 'dart:convert';

main(List<String> arguments) {
  //绑定地址和端口,获取套接字,监听每个连接
  ServerSocket.bind('127.0.0.1', 8089).then((serverSocket) {
    print('开始监听');
    serverSocket.listen((socket) {
      socket.transform(UTF8.decoder).listen(print);
    });
  });
}

Socket-1.dart中的代码如下

import 'dart:io';

main(List<String> arguments) {
  //创建一个Socket连接到指定地址与端口
  Socket.connect('127.0.0.1', 8089).then((socket) {
    //输出socket运行时的类型
    print(socket.runtimeType);
    socket.write('Hello, World!');
  });
}

Socket-2.dart中的代码如下

import 'dart:io';

main(List<String> arguments) {
  //创建一个Socket连接到指定地址与端口
  Socket.connect('127.0.0.1', 8089).then((socket) {
    //输出socket运行时的类型
    print(socket.runtimeType);
    socket.write('Hello, Dart!');
  });
}

首先,运行main.dart,看看效果

这里写图片描述

已经开始监听了,再访问本机地址,看看控制台的输出

这里写图片描述

控制台输出了监听到的访问信息,说明监听是成功的,然后分别运行Socket-1.dart和Socket-2.dart

这里写图片描述

服务器成功接收到客户机的请求内容

Web套接字

重新编写前面三个文件的代码
main.dart中的代码如下

import 'dart:io';
import 'dart:async';

handleMsg(msg) {
  print('收到信息:$msg');
}

main(List<String> arguments) {
  runZoned(() {
    HttpServer.bind('127.0.0.1', 8089).then((server) {
      server.listen((HttpRequest req) {
        if (req.uri.path == '/ws') {
          //把普通的HTTP请求升级成WebSocket请求
          WebSocketTransformer.upgrade(req).then((socket) {
            socket.listen(handleMsg);
          });
        }
      });
    });
  },
  onError: (e) => print("出现一个错误!"));
}

Socket-1.dart中的代码如下

import 'dart:io';

main(List<String> arguments) {
  //创建一个WebSocket连接,URL必须使用ws或wss
  WebSocket.connect('ws://127.0.0.1:8089/ws').then((socket) {
    socket.add('你好!');
  });
}

Socket-2.dart中的代码如下

import 'dart:io';

main(List<String> arguments) {
  //创建一个WebSocket连接,URL必须使用ws或wss
  WebSocket.connect('ws://127.0.0.1:8089/ws').then((socket) {
    socket.add('你也好呀!');
  });
}

首先,运行main.dart,看看效果

这里写图片描述

虽然没什么输出,但是服务器已经运行起来了,然后分别运行Socket-1.dart和Socket-2.dart

这里写图片描述

服务器成功接收到客户机的请求内容

目录
相关文章
|
Dart JavaScript
带你读《深入浅出Dart》十三、Dart的命令行和Web编程(1)
带你读《深入浅出Dart》十三、Dart的命令行和Web编程(1)
|
Dart JavaScript 前端开发
带你读《深入浅出Dart》十三、Dart的命令行和Web编程(2)
带你读《深入浅出Dart》十三、Dart的命令行和Web编程(2)
|
9月前
|
Dart 小程序 前端开发
WebSocket 解析与应用(包含web前端、服务端、小程序、dart/flutter中的用法)
WebSocket 解析与应用(包含web前端、服务端、小程序、dart/flutter中的用法)
1035 0
|
Web App开发 JavaScript 前端开发
Angular JS | Closure | Google Web Toolkit | Dart | Polymer 概要汇集
AngularJS | Closure | Google Web Toolkit | Dart | Polymer GWT https://code.google.com/p/google-web-toolkit/ Google Web Toolkit (GWT) 是一种开源 Java 软件开发框架,可以使不会使用第二种浏览器语言的开发人员编写 Google 地图和 Gmail 等 AJAX 应用程序时更加轻松。
1421 0
|
4月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
268 3
|
3月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
159 62
|
2月前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
|
3月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
269 45
|
3月前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
55 7
|
3月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
66 2

热门文章

最新文章

  • 1
    打造高效的Web Scraper:Python与Selenium的完美结合
    13
  • 2
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    26
  • 3
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    20
  • 4
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    54
  • 5
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    342
  • 6
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 7
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    40
  • 8
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 9
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    22
  • 10
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    55