线程-请大神帮我看下这部分代码怎么写?谢谢!很急

问题描述

请大神帮我看下这部分代码怎么写?谢谢!很急

如图所示,我把基本通讯功能已经实现,但是我想实现下图中红色圈中部分的功能,自动发送跟数据格式的功能怎么实现啊,希望发送端跟接收端都可以实现这个数据格式的功能,谢谢
整体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//添加的命名空间引用
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace UDP_扩展开发
{
public partial class UDPTOOL : Form
{
delegate void AddListBoxItemCallback(string text);
AddListBoxItemCallback listBoxCallback;
//使用的接收端口号
private int port = 8001;
private UdpClient udpClient;
public UDPTOOL()
{
InitializeComponent();
listBoxCallback = new AddListBoxItemCallback(AddListBoxItem);
}

    private void AddListBoxItem(string text)
    {
        //如果listBoxReceive被不同的线程访问则通过委托处理;
        if (listBoxReceive.InvokeRequired)
        {
            this.Invoke(listBoxCallback, text);
        }
        else
        {
            listBoxReceive.Items.Add(text);
            listBoxReceive.SelectedIndex = listBoxReceive.Items.Count - 1;
        }
    }
    /// <summary>
    /// 在后台运行的接收线程
    /// </summary>
    private void ReceiveData()
    {
        //在本机指定的端口接收
        udpClient = new UdpClient(port);
        IPEndPoint remote = null;
        //接收从远程主机发送过来的信息;
        while (true)
        {
            try
            {
                //关闭udpClient时此句会产生异常
                byte[] bytes = udpClient.Receive(ref remote);
                string str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
                AddListBoxItem(string.Format("来自{0}:{1}", remote, str));
            }
            catch
            {
                //退出循环,结束线程
                break;
            }
        }
    }
    /// <summary>
    /// 发送数据到远程主机
    /// </summary>
    private void sendData()
    {
        UdpClient myUdpClient = new UdpClient();
        IPAddress remoteIP;
        if (IPAddress.TryParse(textBoxRemoteIP.Text, out remoteIP) == false)
        {
            MessageBox.Show("远程IP格式不正确");
            return;
        }
        IPEndPoint iep = new IPEndPoint(remoteIP, port);
        byte[] bytes = System.Text.Encoding.UTF8.GetBytes(textBoxSend.Text);
        try
        {
            myUdpClient.Send(bytes, bytes.Length, iep);
            myUdpClient.Close();
            textBoxSend.Focus();
        }
        catch (Exception err)
        {
            MessageBox.Show(err.Message, "发送失败");
        }
        finally
        {
            myUdpClient.Close();
        }
    }

    private void UDPTOOL_Load(object sender, System.EventArgs e)
    {
        //设置listBox样式
        listBoxReceive.HorizontalScrollbar = true;
        listBoxReceive.Dock = DockStyle.Fill;
        //获取本机第一个可用IP地址
        IPAddress myIP = (IPAddress)Dns.GetHostAddresses(Dns.GetHostName()).GetValue(0);
        //为了在同一台机器调试,此IP也作为默认远程IP
        textBoxRemoteIP.Text = myIP.ToString();
        //创建一个线程接收远程主机发来的信息
        Thread myThread = new Thread(new ThreadStart(ReceiveData));
        //将线程设为后台运行
        myThread.IsBackground = true;
        myThread.Start();
        textBoxSend.Focus();
    }
     /// <summary>
    /// 单击发送按钮触发的事件
    /// </summary>
    private void buttonSend_Click(object sender, System.EventArgs e)
    {
        {
            sendData();
        }
    }
    /// <summary>
    /// 在textBoxSend中按下并释放Enter键后触发的事件
    /// </summary>
    private void textBoxData_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
            sendData();
    }

    private void UDPTOOL_FormClosing(object sender, FormClosingEventArgs e)
    {
         udpClient.Close();
    }

}

}

如果有大神愿意帮忙可留下自己的qq,我会及时主动加上的,谢谢!

解决方案

System.Windows.Forms.Timer t = new System.Windows.Forms.Timer(this.components);
t.Interval = int.Parse(间隔文本框.Text) * 1000;
t.Enabled = true;
t.Tick +=new System.EventHandler((a, b) => { sendData(); });

时间: 2024-09-17 02:22:31

线程-请大神帮我看下这部分代码怎么写?谢谢!很急的相关文章

nginx配置-请大神帮我看下关于nignx配置的问题 怎么直接显示本地文件夹的图片

问题描述 请大神帮我看下关于nignx配置的问题 怎么直接显示本地文件夹的图片 (http://img.ask.csdn.net/upload/201511/06/1446781669_124073.png) 请大神帮我看一下怎么直接显示图片 而不是显示index.html 还有 localhost/nginx-1.9.0这个地方应该写什么

求助大神帮我看下 下面的代码哪里有错 编译的时候一直报错

问题描述 求助大神帮我看下 下面的代码哪里有错 编译的时候一直报错 #include #include #pragma comment(lib, "Rasapi32.lib") //#include "Resource.h" HRASCONN hrasconn = NULL; //存放活动连接句柄, 用于断开连接 //BOOL WINAPI DlgProc(HWND,UINT,WPARAM,LPARAM); //BOOL RasEnum(HWND hwnd); //

解密-关于RSA非对称加密的问题。请各位大神帮我看下以下问题,新人求助。。。感激不尽

问题描述 关于RSA非对称加密的问题.请各位大神帮我看下以下问题,新人求助...感激不尽 关于RSA非对称加密的问题.编程语言采用的是C++ 现在需要设计一个用来加密解密程序.里面包含两个接口,一个是加密,一个是解密. rsa 对称加密是公钥和私钥进行加密,接口设计如下: int EncodeRSA(unsigned char pub_key,unsigned int pass_len, unsigned char data,unsigned int data_len,unsigned char

算法-求教,我刚学,请大神帮我看一下,这是我c#文件加密与解密程序,为啥运行的时候有时正常,有时出错

问题描述 求教,我刚学,请大神帮我看一下,这是我c#文件加密与解密程序,为啥运行的时候有时正常,有时出错 int Key Key1; while (true) { Console.WriteLine(""加密请输入(1)解密请输入(2)""); int n = int.Parse(Console.ReadLine()); if (n == 1) { Console.WriteLine(""---------------加密------------

keytool-ssl的大神帮我看下这个问题吧

问题描述 ssl的大神帮我看下这个问题吧 公司的有一个服务器 一个客户端通过ssl加密连接,服务器是C写的,现在又用java写了一个,把C的放弃,由于客户端都在外面,所以客户端的证书没有办法修改(客户端有一个truststore文件),我现在从C的服务器上拿到了两个pem 文件(ca.pem,server.pem),这应该是用openssl生成的,我用keytool生成的keystore文件,在tomcat下的server.xml 里面配置下keystoreFile就可以使用了,我把这两个文件路

int-求大神 帮我看下这个存储过程哪里错了

问题描述 求大神 帮我看下这个存储过程哪里错了 DROP PROCEDURE IF EXISTS Query_Role_PhoneRecord;DELIMITER ;;CREATE DEFINER=root@% PROCEDURE Query_Role_PhoneRecord( in userId binary(16)in pagNo intin pagSize int )BEGINdeclare bSize int; set bSize=(pagNo-1)*pagSize;if(bSize<0

懂webservice和ssl的大神帮我看下这个问题吧,谢谢

问题描述 懂webservice和ssl的大神帮我看下这个问题吧,谢谢 ssl单向认证,1.浏览器访问的时候不需要客户端证书,客户端访问webservice时 则需要一个客户端信任列表文件(client.truststore).浏览器访问时 是自动获取的这个证书 还是浏览器有什么特殊机制? 2.client.truststore这个信任证书是由一个服务器证书导入并生成的,能不能再导入其他的服务器证书? 解决方案 浏览器会告诉你 这个证书不安全,但是程序访问的时候会报错,因为代码默认实现的是验证证

ajax-求大神帮我看下为啥这段代码一直走error?

问题描述 求大神帮我看下为啥这段代码一直走error? 解决方案 跨域的服务器进行跨域支持了吗? 120.27.130.65这个服务器要支持你的跨域,才能使用jsonp,否则将不能回调到success函数. 跨域的本质是利用script,img等支持跨域的标签来对非同域名的链接来进行访问. 所以如果想要跨域成功,那么需要在调用方支持跨域. 我自己负责的很多项目跨域是自己写的实现,所以调用跨域的方法都得使用我封装的形式,否则默认是支持不了跨域的. jQuery的jsonp也一样,没有服务器是天然支

急急急急急-大神帮我看下log cat 哪错了 本人菜鸟

问题描述 大神帮我看下log cat 哪错了 本人菜鸟 求大神解答 哪里错了 本人刚刚才学习做 不懂的看log cat 求大神帮看下哪里出错了 急急急急 解决方案 图片较为模糊,不过我看到了报空指针异常,并且好像是listview引起的,你看看是不是listview初始化了但是没有赋值,比如listview = findViewById(R.id.listview);不懂的可以加我. 解决方案二: 实在看不清啊,不过看样子有异常抛出发生JE 了,这个错误应该好定位