
用 socket 类 udp tcp 我这 给你个 最简单的 例子 udp
服务器端
Imports SystemNetSockets
Imports SystemNet
Module socketsever
Sub main()
startserver()
End SubPrivate Sub startserver()
'创建服务器端的socket
Dim sServer As New Socket(AddressFamilyInterNetwork, SocketTypeDgram, ProtocolTypeUdp)
Dim myip As IPAddress
'制订本地回路的ip地址
myip = IPAddressParse("1013115105")
'设置服务器端口号
Dim sServerep As New IPEndPoint(myip, 2001)
'设置客户端的端口号
Dim clientep As New IPEndPoint(myip, 2002)
'将端口与socket绑定
sServerBind(sServerep)
While True
Try
Dim bytes(100) As Byte
'等待客户端的请求
sServerReceiveFrom(bytes, clientep)
Dim str As String = SystemTextEncodingASCIIGetString(bytes)
'将字符转化成大写
str = strToUpper
bytes = SystemTextEncodingASCIIGetBytes(str)
'返回结果
sServerSendTo(bytes, clientep)
Catch e As SocketException
End Try
End While
End Sub
End Module客户端
界面 和程序
Imports SystemNetSockets
Imports SystemNet
Public Class Form1
Inherits SystemWindowsFormsForm
Private Sub bsend_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles bsendClick
'创建客户端的socket
Dim cClient As New Socket(AddressFamilyInterNetwork, SocketTypeDgram, ProtocolTypeUdp)
'指定本地回路的ip地址
Dim myip, myip1 As IPAddress
myip = IPAddressParse("1013115105")
myip1 = IPAddressParse("1013115136")
'设置服务器端口号
Dim Serverep As New IPEndPoint(myip1, 2001)
'设置客户端的端口号
Dim clientep As New IPEndPoint(myip, 2002)
'将端口与socket绑定
cClientBind(clientep)
Try
Dim str As String = TextinputText
Dim bytes() As Byte = SystemTextEncodingASCIIGetBytes(str)
'向服务器发出请求
cClientSendTo(bytes, Serverep)
Dim bytes2(100) As Byte
'接受服务器的响应结果
cClientReceiveFrom(bytes2, Serverep)
str = SystemTextEncodingASCIIGetString(bytes2)
'将结果显示在文本框中
TextdisplayText = TextdisplayText & vbNewLine & str
Catch er As SocketException
MsgBox(erToString)
End Try
cClientClose()
End Sub
End Class
下位机(比如单片机)通过串口线(比如rs232)发送数据给上位机(pc),下位机部分主要程序就是将数据按照一定的封装格式打包好数据,然后配置好串口相关参数(比如波特率,校验位什么的),上位机需要有软件将串口获得的数据再根据封装格式还原成你需要的数值,这就是整个过程了。
兄弟,下面是我自己写的,希望给你帮助,把数据用send_one_uart()这个函数直接发送到串口就行了!最后求采纳,哈哈!
//-----头文件
#include<reg52h>
//-----定义全局变量
unsigned
char
temp;
/
函数名称:
uart_init
功能描述:
串口初始化函数
输
入:无
输
出:
无
说
明:
无
/
void
uart_init(void)
{
scon
=
0x50;
//-----scon:
模式
1,
8-bit
uart,
使能接收
tmod
|=
0x20;
//-----tmod:
timer
1,
mode
2,
8-bit
重装
th1
=
0xfd;
//-----th1:
重装值
9600
波特率
晶振
110592mhz
tr1
=
1;
//-----tr1:
timer
1
打开
es
=
1;
//-----打开串口中断
ea
=
1;
//-----打开总中断
}
/
函数名称:
sendbyte
功能描述:
发送字节函数
输
入:无
输
出:
无
说
明:
无
/
void
sendbyte(unsigned
char
dat)
{
sbuf
=
dat;
while(!ti);
ti
=
0;
}
/
函数名称:
sendstr
功能描述:
发送字符串函数
输
入:无
输
出:
无
说
明:
无
/
void
sendstr(unsigned
char
s)
{
while(s!='\0')
{
sendbyte(s);
s++;
}
}
/
函数名称:
main
功能描述:
主函数
输
入:无
输
出:
无
说
明:
无
/
void
main
(void)
{
uart_init();
//-----串口初始化
while(1)
{
if(temp=='h'&&'i')
{
temp=0;
sendstr("hello");
}
}
}
/
函数名称:
uart_ser
功能描述:
串口中断服务子函数
输
入:无
输
出:
无
说
明:
无
/
void
uart_ser
(void)
interrupt
4
//-----串行中断服务程序
{
if(ri)
//-----判断是接收中断产生
{
ri=0;
//-----标志位清零
temp=sbuf;
//-----读入缓冲区的值
}
}
上位机是指人可以直接发出 *** 控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。系统中起主控,主要作为系统的规划控制,属于决策层。
下位机是指直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。具体执行层,主要完成系统规划层下达的任务。
以上就是关于【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~全部的内容,包括:【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~、上位机发给下位机数据问题,到底怎么发送的,这是下位机的,、谁有上位机与下位机的串口通讯代码(C语言的)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)