vb.net用socket发送大量数据给单片机stm32F4,速度只有3M字节/秒,有什么办法可以提高到10M字节/秒吗

wuganxiu 2020-05-02 09:37:42
vb.net用socket发送大量数据给单片机stm32F4,速度只有3M字节/秒,有什么办法可以提高到10M字节/秒吗,因为我也一个单片机发,一个单片机收,速度可以做到10M字节/秒,单片机接收是可以处理过来的,网络方面需要怎么配置,这是我的上位机代码
Imports System.Net.Sockets
'使用到TcpListen类
Imports System.IO
'使用到StreamWriter类
Imports System.Net
'使用IPAddress类、IPHostEntry类等
Imports System.Threading
Public Class Form1
Private swWriter As StreamWriter
'用以向网络基础数据流传送数据
Private nsStream As NetworkStream
'创建发送数据的网络基础数据流
Dim tcpClient1 As TcpClient
'通过它实现向远程主机提出TCP连接申请
Private tcpConnect As Boolean = False
'定义标识符,用以表示TCP连接是否建立
'Private s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Dim bytes(1024) As Byte ' 用来存储接收到的字节
' Dim ss As Socket = s.Accept() '若接收到,则创建一个新的Socket与之连接
Dim fa(0 To 29200 - 1) As Byte
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ipRemote As IPAddress
Dim tcpClient As TcpClient
Try
ipRemote = IPAddress.Parse(TextBox1.Text)
Catch
MessageBox.Show("输入的IP地址不合法!", "错误提示!")
Return
'判断给定的IP地址的合法性
End Try
Try
tcpClient = New TcpClient(TextBox1.Text, 8088)
'对远程主机的8000端口提出TCP连接申请
nsStream = tcpClient.GetStream()
'通过申请,并获取传送数据的网络基础数据流
swWriter = New StreamWriter(nsStream)
'使用获取的网络基础数据流来初始化StreamWriter实例
Button1.Enabled = False
Button2.Enabled = True
tcpConnect = True
StatusBar1.Text = "已经连接!"
Catch
MessageBox.Show("无法和远程主机8089端口建立连接!", "错误提示!")
Return
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim i As Integer
Dim a As Byte = 1
' Dim tcpClient As TcpClient


For i = 0 To 29200 - 1
fa(i) = 3
Next
Call sample0()


End Sub

Private Sub Form1_Disposed(sender As Object, e As System.EventArgs) Handles Me.Disposed
If tcpConnect Then
swWriter.WriteLine("STOP")
'发送控制码
swWriter.Flush()
'刷新当前数据流中的数据
nsStream.Close()
swWriter.Close()
'清除资源 ( )
End If
tcpClient1.SendBufferSize = 29200
If Disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(Disposing)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
tcpClient1.SendBufferSize = 29200
End Sub



Sub sample0()
Dim sample0_Thread As New Thread(AddressOf sample0_printI)
tcpClient1 = New TcpClient

tcpClient1.SendBufferSize = 29200
sample0_Thread.Start()
TextBox3.Text = tcpClient1.SendBufferSize
' Console.Write("End")
End Sub

Sub sample0_printI()
Dim a As Integer = 1
Try
Do

nsStream.Write(fa, 0, 29200)
swWriter.Flush()
Loop While a = 1
Catch
MessageBox.Show("无法和远程主机8089端口建立连接!", "错误提示!")
Return
End Try
End Sub

End Class
...全文
228 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
同时也看对方的接收速度,如果对方不及时从缓冲区移除数据,那么tcp会发等待的。(没有ack回复我得等,或者重新发,或者error) 如果你理解不了,请看下面得文章 TCP/IP之TCP协议(3):流量控制(滑动窗口协议) https://blog.csdn.net/wbw1985/article/details/4879224
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
3M/s其实已经OK 百兆上行顶破天就5M/s,下行10M/s
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
这个问题一直如此啊,来回的问。 1.速度多快其实不是你能控制的。你只是往发送缓冲区写数据。 2.发送数据其实是系统底层接管的 所以能多快起决定意义的物理带宽,物理网卡,以及对方的接收速度(因为你实际发送对方也不是立刻收的,他会先到接收缓冲区
wurst115 2020-07-01
  • 打赏
  • 举报
回复
这已经火力全开了
内容概要:本文系统阐述了48V低压电网架构在智能电动汽车发展背景下的技术必然性与产业化路径。随着高阶辅助驾驶、线控底盘、沉浸式座舱等功能对电力需求激增,传统12V电网面临功率密度不足、能效低下、扩展受限等瓶颈,而48V电网凭借更高的功率承载能力(可达5-6kW持续负载)、更低的电流损耗(电流为12V系统的1/4)、更高的传输效率(>95%)以及良好的兼容性,成为支撑“软件定义汽车”的关键基础设施。文章详细分析了48V架构的三种落地路径:高端纯电车型首发、48V+12V混合组网过渡、未来向全48V架构演进,并强调eFuse等智能化配电技术的融合将提升安全性与系统集成度。同时指出该技术将引发产业生态变革,推动芯片、电池、配电模块等供应链重构,倒逼车企提升能量管理与软件定义能力。; 适合人群:汽车电子工程师、整车厂研发人员、零部件供应商技术人员、芯片与电源管理系统开发者、汽车行业战略规划与投资分析人员。; 使用场景及目标:①理解48V电网取代12V系统的底层逻辑与技术优势;②掌握48V架构的典型实施方案与产业化节奏;③洞察其对汽车电子电气架构(EEA)升级、软硬件协同及产业链布局的影响;④为技术研发、产品规划与投资决策提供参考。; 阅读建议:此白皮书兼具技术深度与产业视野,建议结合实际项目需求重点关注不同阶段的技术选型策略、核心组件国产化进展及标准化动态,同时关注SOA架构与功能安全在新型电力系统中的应用实践。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 【Visual Studio Code(VSCode)——新一代编程利器】Visual Studio Code,简称VSCode,是由微软所研发的一款免费、开源的源代码编辑器。它凭借其高效、轻量级且功能强大的特点,逐步成为全球开发者所青睐的编辑工具,甚至被赞誉为超越Source Insight千倍的神器。接下来将具体阐述VSCode的一些核心功能与优势。一、跨平台支持VSCode能够兼容Windows、macOS以及Linux等主流操作系统,无论你处于何种工作环境,都可以实现无缝切换,确保开发的一致性。二、内置Git集成VSCode内嵌了Git版本控制系统,可以直接在编辑器界面进行提交、推送、拉取等操作,无需离开编辑器即可管理代码仓库,显著提升了开发效率。三、丰富的扩展市场VSCode配备了一个庞大的扩展市场,包含了各种语言的语法高亮、代码片段、调试工具、主题等插件,可以根据个人需求对编辑器进行个性化定制,例如安装Prettier实现代码格式化,或安装ESLint执行代码检查。四、强大的代码智能提示与补全VSCode提供了智能代码提示和自动补全功能,对于JavaScript、TypeScript、Python、C#等语言的支持尤为卓越。它能洞察项目上下文,提供精准的函数、变量建议,从而减少编码错误。五、内置调试器VSCode内置的调试器兼容多种编程语言,支持设置断点、查看变量值、单步执行等操作,使得调试过程直观且高效。六、多语言支持VSCode支持几乎所有编程语言,包括但不限于JavaScript、Python、Java、C++、C#、Go、PHP等,并且通过安装相应的语言扩...

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧