也发一个VB.net里面基于socket实现TCP/IP通许范例。

wenluderen wenluderen 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为啥是也发,因为:
https://bbs.csdn.net/topics/392456327

原帖说的不错,关键是第三步。

服务器代码:

Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports Microsoft.VisualBasic
Public Class Form1
Dim s As Socket = Nothing
Dim t As Thread


Public Sub WaitData()
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) '使用TCP协议
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("192.168.1.12"), 1024) ' 指定IP和Port
s.Bind(localEndPoint) ' 绑定到该Socket
s.Listen(100) ' 侦听,考试#大提示最多接受100个连接
While (True)
Dim bytes(1024) As Byte ' 用来存储接收到的字节
Dim ss As Socket = s.Accept() '若接收到,则创建一个新的Socket与之连接
ss.Receive(bytes) ' 接收数据,若用ss.send(Byte()),则发送数据


'Dim Send_bytes() As Byte = {"1", "3"} ' 用来存储接收到的字节
'ss.Send(Send_bytes(0))

Call ShowinListBox(Encoding.Unicode.GetString(bytes), ListBox1)
'若使用Encoding.ASCII.GetString(bytes),则接收到的中文字符不能正常显示
End While
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
t = New Thread(AddressOf WaitData) '建立新的线程
t.Start() '启动线程
Button1.Enabled = False '按钮不可用,避免另启线程
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
s.Close() '关闭Socket
t.Abort() '中止线程
Catch
Finally
Button1.Enabled = True '启用BtnStart
End Try
End Sub

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
Try
s.Close() '关闭Socket
t.Abort() '中止线程
Catch
Finally
Button1.Enabled = True '启用BtnStart
End Try
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub


End Class



客户端代码


Imports System.Net.Sockets
Imports System.Net
Imports System.Text


Public Class Form1

Private s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button_Open_Click(sender As Object, e As EventArgs) Handles Button_Open.Click
Try
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(Me.TextBox_Server_IP.Text), Me.TextBox_Server_Port.Text)

s.Connect(localEndPoint)


Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim Gsz_bytes() As Byte

' Gsz_bytes = Encoding.Unicode.GetBytes(TextBox_Send.Text)
' Gsz_bytes = Encoding.UTF8.GetBytes(TextBox_Send.Text) '这是可以的
Gsz_bytes = System.Text.Encoding.ASCII.GetBytes(TextBox_Send.Text)
s.Send(Gsz_bytes)


Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub Button_Close_Click(sender As Object, e As EventArgs) Handles Button_Close.Click
Try
s.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub
End Class



源程序,VS2012可以打开

没有办法上传附件,所以上传到资源区了
https://download.csdn.net/download/wenluderen/10699573
...全文

相关推荐

<.Net><VB><PLC>VisaulStudio中使用VB.net语言,实现与西门子PLC进行Socket通讯的案例

主要是项目需要,本身是plc工程师,但有上位机编程的需求,就试着去自己做编程,主要是觉得VB要简单点,于是就下载了微软的vs2019个人版,电脑系统是win10.

机构师

电信运营基于分类模型的客户流失预警系统:数据挖掘驱动的精准挽留策略设计

内容概要:本文围绕电信客户流失预警与挽留策略,构建了一套从数据探索、预处理、特征工程、分类建模、模型评估与解释到业务落地的端到端数据挖掘实战方案。基于公开的 Telco Customer Churn 数据集,项目聚焦于识别高流失风险客户,并通过逻辑回归、随机森林和XGBoost等模型进行对比分析,结合ROC-AUC、精确率、召回率、F1等指标评估性能,利用SHAP等方法实现模型可解释性,最终将预测结果转化为可操作的客户分层与差异化挽留策略。文中强调了数据泄漏防范、类别不平衡处理、模型可复现性及A/B测试验证增量收益的重要性,并明确指出当前图表为示意性质,需通过附录代码运行真实数据生成结果。; 适合人群:具备一定数据分析与机器学习基础,从事数据科学、用户运营或客户留存相关工作的从业者,尤其是工作1-3年希望提升实战能力的研发与分析人员。; 使用场景及目标:①掌握客户流失预测的全流程方法论,包括数据清洗、特征工程、建模调参与模型解释;②学习如何将机器学习模型输出转化为可运营的客户触达策略;③理解模型评估与业务目标之间的衔接,如预算约束下的优先级排序与A/B测试设计; 阅读建议:此资源以实际业务场景驱动,不仅关注算法实现,更重视从业务定义到策略落地的闭环逻辑。建议结合附录提供的完整Python代码,在本地环境中下载数据集并复现分析流程,重点关注数据预处理防泄漏机制、模型管道构建、超参数调优策略及SHAP解释应用,避免将文中的示意图表误认为实测结果。

云博士的AI课堂

旋转高频信号注入法在PMSM零低速无位置控制中的仿真研究(Matlab代码实现)

内容概要:本文系统研究了旋转高频信号注入法在永磁同步电机(PMSM)零低速无位置传感器控制中的应用,并提供了基于Matlab/Simulink的完整仿真代码实现。针对PMSM在启动及低速运行时反电动势微弱导致传统观测器失效的问题,该方法通过在定子绕组中注入高频旋转电压信号,利用电机自身凸极效应产生的响应电流特征,实现对转子位置的高精度在线估计。文中详细阐述了该技术的理论基础、数学建模过程、仿真系统架构设计以及关键参数整定方法,全面验证了其在零速和低速工况下对转子初始位置辨识与动态跟踪的准确性、有效性及强鲁棒性。; 适合人群:具备电机控制理论基础知识和Matlab/Simulink仿真能力的电气工程、自动化、电力电子等相关专业的硕士研究生、博士研究生、科研人员以及从事高性能电机驱动系统研发的工程师。; 使用场景及目标:① 深入理解高频信号注入类无位置传感器控制技术的工作原理、信号处理机制与工程实现细节;② 掌握利用Matlab/Simulink搭建PMSM高性能矢量控制系统及高级观测器的仿真方法;③ 为开发高精度、低成本、全速度范围适用的PMSM无位置传感器驱动器提供坚实的理论依据和技术验证平台。; 阅读建议:建议读者结合文中详尽的理论推导与所提供的仿真代码进行对照学习,亲自动手运行、调试仿真模型,通过改变负载、转速、注入信号参数等工况,观察系统响应与控制效果的变化,从而深刻掌握旋转高频注入法的内在工作机制与设计要点。

威武编程狮

Python小Demo实例源码爬取网易云音乐评论

Python小Demo实例源码爬取网易云音乐评论

zz_ll9023one

Python3 finally执行铁律

finally代码块无论try内部是否报错、是否执行return,都会强制执行。唯一例外:调用os._exit()直接终止解释器,跳过finally。业务场景:数据库连接、网络套接字、文件句柄回收,放入finally保证资源释放。特殊细节:try内部return不会立刻返回,会先执行finally内部代码,再返回结果。新手易错:在finally内部写入return,会覆盖try原有返回值,导致业务数据异常,严禁在finally使用return语句。 tiyu.xastone.com www.yingjie168.com 17kuaibu.com www.0760yx.net 1900kk.com

2601_97221235
评论 15
收藏 已收藏
分享
返回顶部
wenluderen
VB 16,718 成员 110,520 内容