private void btn_send_Click(object sender, EventArgs e)
        
{
            
byte[] bt = System.Text.Encoding.Default.GetBytes(this.txt_msg.Text);
            TcpClient tc 
= new TcpClient(this.txt_tarip.Text, int.Parse(this.txt_tarport.Text));
            NetworkStream nks 
= tc.GetStream();
            nks.Write(bt, 
0, bt.Length);
            nks.Flush();
        }


        
private void btn_begin_Click(object sender, EventArgs e)
        
{
            Thread t 
= new Thread(Listen);
            t.Start();
        }


        
private void Listen()
        
{
            TcpListener tl 
= new TcpListener(ep);
            tl.Start();
            
while (true)
            
{
                
try
                
{
                    Socket s 
= tl.AcceptSocket();
                    
byte[] bt = new byte[256];
                    
int i = s.Receive(bt);
                    
string msg = System.Text.Encoding.Default.GetString(bt, 0, i);
                    
if (msg.Length != 0)
                    
{
                        
this.txt_accmsg.AppendText(msg + "\r\n");
                    }

                }

                
catch 
                
{ }
            }

        }
posted @ 2008-05-13 15:09 陈旭85 阅读(324) 评论(0) 编辑

一个用FileStream来复制文件的小程序


相比用File.Copy()方法,我觉得有两个好处
1:可以实时显示文件进度
2:当文件拷贝到一半发生异常时不会造成目标文件不可用,(用FileStream,文件可播放已拷贝部分的片段)


贴上代码:

 1       private void button1_Click(object sender, EventArgs e)
 2        {
 3            FileStream fsr = null;
 4            FileStream fsw = null;
 5            try
 6            {
 7                this.progressBar1.Maximum =100;
 8                fsr = new FileStream(this.textBox1.Text, FileMode.Open);
 9                fsw = new FileStream(this.textBox2.Text, FileMode.Create);
10                byte[] bt = new byte[1024*1024];
11                int rcount = 0;
12                do
13                {
14                    Application.DoEvents();
15                    rcount = fsr.Read(bt, 0, bt.Length);
16                    fsw.Write(bt, 0, rcount);
17                    //this.progressBar1.Value = Convert.ToInt32(fsw.Length);
18                    this.progressBar1.Value = ((int)(((float)fsw.Length / (float)fsr.Length)*100 )) ;
19                    Application.DoEvents();
20                }
 while (rcount != 0);
21                fsr.Close();
22                fsw.Close();
23            }

24            catch (Exception ex)
25            {
26                if (fsr != null)
27                {
28                    fsr.Close();
29                    fsr = null;
30                }

31                if (fsw != null)
32                {
33                    fsw.Close();
34                    fsw = null;
35                }

36                MessageBox.Show(ex.ToString());
37            }

38        }

39
posted @ 2008-05-13 09:11 陈旭85 阅读(136) 评论(0) 编辑