套接字

首先在项目中建三个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或wssWebSocket.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或wssWebSocket.connect('ws://127.0.0.1:8089/ws').then((socket) {socket.add('你也好呀!');});
}

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

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

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

Dart的套接字与web套接字相关推荐

  1. stomp java客户端_Stomp-Spring服务器端的Web套接字Java客户端

    stomp java客户端 问题: 为了分析问题,我不得不编写一个简单的Java Web套接字客户端站点代码,并使用基于stomp的Web套接字代理连接到服务器端基于Spring的应用程序. 解决方案 ...

  2. Stomp-Spring服务器端的Web套接字Java客户端

    问题: 为了分析问题,我不得不编写一个简单的Java Web套接字客户端站点代码,并使用基于stomp的Web套接字代理连接到服务器端基于Spring的应用程序. 解决方案: pom.xml < ...

  3. Java套接字程序_java – 通过Web套接字进行应用程序到应用程序的通信

    我通过Web套接字(没有浏览器工作)获得应用程序到应用程序的通信有些麻烦.由于这似乎不是最常用的网络套接字应用程序,我想知道是否有人有这方面的经验. 为什么我要使用网络套接字? 由于防火墙问题,我需要 ...

  4. python套接字编程_Python套接字编程(1)——socket模块与套接字编程

    在Python网络编程系列,我们主要学习以下内容: 5. 常见的Python异步编程框架 6. 协程在Python网络编程中的使用 本文介绍Python下的基本套接字编程,主要基于 socket 模块 ...

  5. 流式套接字(SOCK_STREAM),数据报套接字 (SOCK_DGRAM) 的比较

    1.流式套接字 使用这种套接字时,数据在客户端是顺序发送的,并且到达的顺序是一致的.比如你在客户端先发送1,再发送2,那么在服务器端的接收顺序是先接收到1,再接收到2,流式套接字是可靠的,是面向连接的 ...

  6. 手把手教你WEB套打程序开发

    WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是"空手 ...

  7. 【JavaEE】网络编程之TCP套接字、UDP套接字

    目录 1.网络编程的基本概念 1.1为什么需要网络编程 1.2服务端与用户端 1.3网络编程五元组 1.4套接字的概念 2.UDP套接字编程 2.1UDP套接字的特点 2.2UDP套接字API 2.2 ...

  8. (分享)基于JQuery的WEB套打设计器jatoolsPrinter2.0

    开发web套打应用时,如快递单打印,一般要经过以下步骤: 1. 扫描快递单据,保存成一个图片文件 2. 将底图作成<img> 3. 在<img>上放置打印项,试着打印到打印机, ...

  9. 32套无碳小车重力势能小车8字型S型工程训练大赛sw建模3D图纸设计

    32套无碳小车重力势能小车8字型S型工程训练大赛sw建模3D图纸设计 tao <img src="https://img-blog.csdnimg.cn/29ee6d5125d4423 ...

最新文章

  1. 构造代码块,初始代码块和静态代码块的执行顺序
  2. mega_[MEGA DEAL]终极Android N开发套件(90%折扣)
  3. 【最简单的例子】Editor.md的初步使用
  4. matlab图像去毛刺_信号去毛刺,去零漂
  5. Web.Config文件配置之数据库连接配置
  6. 开源贡献 计算_学生如何开始为开源软件做贡献
  7. 集成Ehcache用来缓存表以后,怎么设置缓存刷新时间
  8. php多图片上传程序2.4.3,php多文件上传 多图片上传程序代码
  9. 强制更新LYNC客户端的地址簿
  10. 表情识别(六)--局部特征学习和Handcrafted特征结合
  11. CS224N笔记(十):问答系统
  12. Mysql查看执行计划-explain
  13. C语言问题,if条件里面按位取反
  14. linux ARM64 中断底层处理代码分析
  15. Anaconda3\Scripts\activate.bat 不是内部或外部命令,也不是可运行的程序的问题处理方法
  16. CAD制图怎么使用CAD修剪命令呢?
  17. 【奇葩问题】每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档
  18. 结对项目之需求分析与原型设计(导师选择)
  19. [有感而发]与刺客独行
  20. 试题 算法训练 盾神与离散老师2

热门文章

  1. https配置的后序以及网页定位的测试
  2. Java 1.4 大数值问题
  3. 【Cite 1.7K】Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
  4. 《深度学习笔记》——防止梯度消失的学习笔记
  5. Python——用assert语句来确保参数符合当前程序的要求
  6. 手动搭建latex公式渲染服务器
  7. ESP32开发 CMakeLists包含同级目录.h文件,error: gpioX.h: No such file or directory
  8. 算法不会,尚能饭否之队列
  9. 敏捷开发一千零一问系列之十八:长期受制于强势客户怎么办?(下)
  10. 培养创造性思维20个技巧