C#实时申请技术

Real time Application 实时申请技术在本文里是作为一个实例来演示在用户(Tcpclient)申请与服务器(TcpServer)申请之间使用Socket类的情况 。该项目同样也演示在实时项目中如何使用listview控制以及如何传递XML格式信息。

TcpServer.exe 文件显示了在单独的thread当中(而不是在GUI 线程之中)TCP socket的相互通讯。

TcpClient.exe文件同样也使用一条单独的线程 从Socket中读取数据,然后对表单中的list view控件进行更新。

步聚如下:

1.TcpServer 监听端口8002,并且发射线程等待客户端连结。

Hashtable socketHolder = new Hashtable();
Hashtable threadHolder = new Hashtable();
public Form1()
{
 // Required for Windows Form Designer support
 //
 InitializeComponent();
 tcpLsn = new TcpListener(8002);
 tcpLsn.Start();
 // tcpLsn.LocalEndpoint may have a bug, it only show 0.0.0.0:8002
 stpanel.Text = "Listen at: " + tcpLsn.LocalEndpoint.ToString();
 Thread tcpThd = new Thread(new ThreadStart(WaitingForClient));
 threadHolder.Add(connectId, tcpThd);
 tcpThd.Start() ;
}
2. TcpClient与TcpSrv连接上后,发送客户端信息数据包至TcpServer,然后发射线程,该线程是用来接收通过Socket传来的数据。

private void menuConn_Click(object sender, System.EventArgs e)
{
 ConnectDlg myDlg = new ConnectDlg();
 myDlg.ShowDialog(this);
 if( myDlg.DialogResult==DialogResult.OK)
 {
  s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp );
  IPAddress hostadd = IPAddress.Parse(myDlg.IpAdd);
  int port=Int32.Parse(myDlg.PortNum);
  IPEndPoint EPhost = new IPEndPoint(hostadd, port);
  Try
  {
   s.Connect(EPhost);
   if (s.Connected)
   {
    Byte[] bBuf;
    string buf;
    buf = String.Format("{0}:{1}", myDlg.UserName,myDlg.PassWord);
    bBuf=ASCII.GetBytes(buf);
    s.Send(bBuf, 0 , bBuf.Length,0);
    t = new Thread(new ThreadStart(StartRecieve));
    t.Start();
    sbar.Text="Ready to recieve data";
   }
  }
  catch (Exception e1)
  {
   MessageBox.Show(e1.ToString());
  }
 }
}
private void StartRecieve()
{
 miv = new MethodInvoker(this.UpdateListView);
 int cnt=0;
 string tmp=null;
 Byte[] firstb= new Byte[1];
 while (true)
 {
  try
  {
   Byte[] receive = new Byte[1];
   int ret = s.Receive(receive, 1, 0);
   if (ret > 0)
   {
    switch(receive[0])
    {
     case 11: //check start message
       cnt=0;
       break;
     case 10: // check end message
       cnt=0;
       if(firstb[0] == ':')
        HandleCommand(tmp);
       else if(firstb[0] == '<')
        HandleXml(tmp);
       else
        HandleText(tmp);
        tmp=null;
        break;
       default:
        if (cnt == 0)
         firstb[0] = receive[0];
         tmp += System.Text.Encoding
         .ASCII.GetString(receive);
         cnt++;
         break;
        }
       }
    }
    catch (Exception e)
    {
     if( !s.Connected )
      {
       break;
      }
     }
   }
   t.Abort();
  }
3.TcpServer接收来自TcpClient的连接请求,并且将socket 实例保存到Hash表中,然后发射线程以便控制socket的通讯,同时将客户端信息在listview 控件中显示出来。

时间: 2024-10-31 08:21:41

C#实时申请技术的相关文章

雅虎实验室主管:将开发新型实时搜索技术

中介交易 SEO诊断 淘宝客 云主机 技术大厅 北京时间8月1日消息,据国外媒体报道,雅虎实验室主管普拉布哈卡尔·拉加瓦(Prabhakar Raghavan)周五表示,虽然雅虎将把互联网常规搜索服务外包给微软,但雅虎今后将考虑开发自家新型实时搜索技术.今后网民在雅虎网站使用搜索服务时,将由微软搜索引擎Bing(中文名称"必应")和雅虎实时搜索引擎共同返回混合结果. 微软和雅虎周三宣布,双方已达成为期10年的搜索和广告合作协议.协议规定,微软将成为雅虎搜索的技术提供商,而雅虎将独家负责

谷歌发布最新实时搜索技术 能用照片进行搜索

中介交易 SEO诊断 淘宝客 云主机 技术大厅 据国外媒体报道,谷歌新推出的搜索技术可以给用户传达实时搜索结果,并且能允许用户通过智能手机摄像头拍摄的照片来进行搜索. 谷歌表示,其实时搜索技术旨在为用户提供最新的.以及和用户搜索意图最相关的搜索结果.谷歌的实时搜索理念主要为了能让用户快速了解某一时刻网上最新的关于用户搜索词条的信息.实时搜索结果会显示在一个滚动框里,滚动框里显示有最新的来自社交性博客和微博的信息,诸如Twitter, MySpace, FriendFeed, Jaiku 和Ide

百度秘密研发“影子导航” 已申请技术专利

缺乏方向感的用户可能常常遇到这种困惑:即便看手机导航,你也不清楚自己的方位.也许走了很久,才发现走错了方向.百度公司近日申请的一项名为"导航用户朝向确定方法及装置"的http://www.aliyun.com/zixun/aggregation/17705.html">技术专利,或许可以帮助"路痴"朋友解决麻烦.利用这一技术,用户通过比较现实影子和地图上的"影子",就可以判断出正确的方向. 记者在国家知识产权局专利检索系统中查询发

Yelp的实时流技术之三:不止是模式存储服务的Schematizer

这是关于Yelp的实时流数据基础设施系列文章的第三篇.这个系列会深度讲解我们如何用"确保只有一次"的方式把MySQL数据库中的改动实时地以流的方式传输出去,我们如何自动跟踪表模式变化,如何处理和转换流,以及最终如何把这些数据存储到Redshift或Salesforce之类的数据仓库中去.   当你的系统每天要实时从MySQL到Kafka发布几十亿条消息时,你会怎么管理这些数据的模式信息呢?当你的系统要接入几百个服务时,你就要处理几千种不同的模式,手工管理是不可行的.必须有自动化的方案来

转一篇:Hyper-V和VMware的高可用实时迁移技术详解

ESX里以集群的ha.drs.dpm功能实现 HYPER-V里以集群+共享存储实现. ~~~~~~~~~~ 微软公司的Hyper-V虚拟化管理程序一经面世就引发了业界的普遍关注.本文意在对Hyper-V的高可用性和快速迁移能力与VMware旗下的VMotion的实时迁移能力进行对比.在进行详细分析之前,我们还需要了解为什么高可用性在虚拟化应用中起着绝对关键的作用. 虚拟化是一项令人敬畏的技术.在减少企业的总体拥有成本方面优势巨大,其中最显著的优势就是节省了能耗.以一座10,000台服务器配置的数

新浪财经股票实时更新技术

问题描述 请教一个问题,有谁知道新浪财经股票实时更新所采用的技术? 谢谢: 问题补充:没有人知道一些具体的实现技术吗: 解决方案 这个技术 肯定很多都可以实现 主要的思路就是和服务器数据一直保持同步 可以轮询服务器 也可以然服务器推送数据 具体的技术 你可以百度一下 comet 了解一下解决方案二:我也很想知道解决方案三:应该是socket 一直和服务器数据保持同步

天猫“双11”成交额实时统计技术详解

阿里巴巴资深技术专家莫问在2017年12月20日云栖大会北京峰会上做了题为"Apache Flink技术进阶"的主题演讲.Apache Flink作为流式计算引擎,支持了"双十一对的"实时计算,已经被国内外的公司使用.其中关于"Flink的技术特点"."阿里巴巴的Flink版本--Blink"以及"Blink在实际场景中的应用" 等经验首次对外详细剖析,很有价值.以下为视频内容整理: Apache Flin

Yelp的实时流技术之四:流处理器PaaStorm

这是关于Yelp的实时流数据基础设施系列文章的第四篇.这个系列会深度讲解我们如何用"确保只有一次"的方式把MySQL数据库中的改动实时地以流的方式传输出去,我们如何自动跟踪表模式变化.如何处理和转换流,以及最终如何把这些数据存储到Redshift或Salesforce之类的数据仓库中去. 在2010年时,Yelp开源了一个名叫MRJob的框架,是用来在AWS基础设施上运行大MapReduce Job的.Yelp的工程师们用MRJob实现了很多功能,从广告推送到翻译,比比皆是.事实证明,

VxD技术及其在实时反病毒中的应用

目前国内的Windows9x平台反病毒产品大多属静态反病毒软件,指导思想是"以杀为主",这一方式的缺点是病毒在被清除之前可能早已造成了严重危害一个好的反病毒软件应该是"以防为主,以杀为辅",在病毒入侵时就把它清除掉,这就是实时反病毒技术. Windows9x使用IntelCPU的Ring0和Ring3两个保护级.系统进程运行于Ring0,因而具有对系统全部资源的访问权和管理权:而普通用户进程运行于Ring3,只能访问自己的程序空间,不允许对系统资源进行直接访问许多操