日期:2011-05-22  浏览次数:20388 次

上面介绍了通讯的基类,下面就是使用那个类进行发送和接收的部分:
二、发送部分:
发送咱们使用了多线程,可以同时进行多个任务,比如发送文件、发送文本等,互不影响:
发送文本方法:
private void StartSendText(string strHost,int iPort,string strInfo)
      {
           SendText stText = new SendText(strHost,iPort,strInfo,new CommunClass.OnSend(OnSendDrawProgress)) ;
           StartThread(new ThreadStart(stText.Send)) ;
       }
下面是他调用用到的一些方法:
开始一个线程
private void StartThread(ThreadStart target)
       {
           Thread doStep = new Thread(target) ;          
           doStep.IsBackground = true ;
           doStep.Start() ;
       }
 发送一部分(本文设置的是1024字节)成功后的回调方法
        public void OnSendDrawProgress(int iTotal,int iSending)
       {  
           if (iTotal != pbMain.Maximum)
               pbMain.Maximum = iTotal ;
                pbMain.Value = iSending ;
       }
因为使用的是线程,所以发送文本使用的是一个发送文本类的方法,该类如下:
public class SendText
     {
          private string Host ;
          private int Port ;
          private string Info ;
          private CommunClass.OnSend onsend ;
         public SendText(string strHost,int iPort,string strInfo,
              CommunClass.OnSend onSend)
         {
              Host = strHost ;
              Port = iPort ;
              Info = strInfo ;
              onsend = onSend ;
         }
         public void Send()
         {
              Socket s  = null ;
              try
              {
                   s = CommunClass.ConnectToServer(Host,Port) ;