C# 窗体应用程序,实现UDP通信,根据接收数据判断窗体的启动、关闭、隐藏

C# 窗体应用程序,实现UDP通信,根据接收数据判断窗体的启动、关闭、隐藏,第1张

你这个根据接收数据控制窗体的启动隐藏什么意思呢?

我简单写个吧。不会你在问我

using System

using System.Collections.Generic

using System.Linq

using System.Text

using System.Net

using System.Net.Sockets

private void button1_Click(object sender, EventArgs e)

{

/*构建UDP服务器*/

/*得到本机IP,设置UDP端口号*/

IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 10000)

Socket command_sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)

/*绑定网络地址*/

command_sock.Bind(ipep)

Console.WriteLine("这是个UDP服务器,名字是 {0}", Dns.GetHostName())

while (true)

{

/绝橡*接收信息*/

command_sock.ReceiveTimeout = 10000//设哗宏友置接收超时时间单位毫秒

try

{

int recv = command_sock.ReceiveFrom(data, ref Remote)

/*得到乱槐目标的IP 端口*/

Console.WriteLine("Message received from {0}: ", Remote.ToString())

/*得到收到的信息*/

Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv))

}

catch

{

Console.WriteLine("连接超时~~ ")

continue

}

if(data[0] == 1)

{

/*打开新窗口,前提你已经创建了新的form*/

form2 new_form= new form2 ()

new_form.ShowDialog()

}

else if(data[0] == 2)

{

/*关闭现在的窗口*/

this.Close()

}

else if(data[0] == 3)

{

/*隐藏现在窗口*/

this.Hide()

}

}

}

不过这样写就是个按钮事件,而且是循环的。会导致你主窗口卡主。如果想留长点,用多线程多进程写好点

打开C++Builder编程软件,新建一个项目,新建一个窗口,咐森在工具栏上找到UDPSocket控件如图

在图中,选择【Internet】页面,出面控件列表,选择【UDPSocket】控件,在倒数第三个,图中都时行了标注,在新窗口中,按住鼠标左键,拖出控件,如图

选中该控件,在属性列表中设置其属性,如图

设置LocalHost(为客户端的IP地址)、RemoteHost(服务器端的IP地址)、RemotePort(服务器端的通信端口)的值。双击窗口中的UDPSocket控件,出现如图界面

d出代码编写界面后,编写UDPSocket控件连接代码:

//---------------------------------------------------------------------------

void __fastcall TForm7::UdpSocket1Connect(TObject *Sender)

{

Label2->Caption="连接中..."

AnsiString s="abcdef"

Char *Buffer

Buffer[0]=0x11// 数据块长度

Buffer[1]=0x11 // 重置命令

Buffer[2]=0x11// 当前版本号

Buffer[3]=0x11//重置结果,应答时有效

Buffer[4]='\0'

//发送数据

/空让/UdpSocket1->SendBuf(Buffer,sizeof(Buffer))

UdpSocket1->Sendln(s,"")

Label2->Caption="发送连接报文..."

}

代码编写完成后,添加触发按钮,在窗口中添加【确定衡亏亩】和【退出】按钮,如图

分别双击【确定】和【退出】按钮,跳转到代码编写界面。点击【确定】按钮,触发UDP连接事件,代码如下:

//发送设置报文

//UdpSocket1->Active=true

Label2->Caption="开始发送报文..."

UdpSocket1->Open()

【退出】按钮的事件如图

都设置完成后,打开网络调试助手,设置好配置条件,连接,如图

步骤阅读

设置完成后,运行程序,可以在网络调试助手界面上显示程序发过来的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12473642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存