现在需要做一个文件传输程序,要求是unix服务器与windows服务器上的某些文件互相传输,现在自己没有什么思路了,请高手指点~~~~赤膊雪地跪求~~~

解决方案 »

  1.   

    TCP UDP都可以啊,udp快一点~
      

  2.   

    看一下MSDN
    System.Net.Sockets命名空间
      

  3.   

    看实际情况再处理,你的Unix服务器上的代码是你自己写吗??有没有现成的FTP服务?或其它的可以用来传输文件的服务??
      

  4.   

    基于FTP、http的话比较简单从头做的话,TCP/Socket吧
      

  5.   

    问个弱弱的问题~~我还要在UnixServer上放自己的代码??T_T
      

  6.   

     回复人:gengyu831124() ( 一级(初级)) 信誉:100  2007-06-13 10:41:50  得分:0

    问个弱弱的问题~~我还要在UnixServer上放自己的代码??T_T--------------------------------
    当然,不然你想怎么传??
      

  7.   

    请问这段代码是在干什么??//这里是发送的                                             
      listener   =   new   TcpListener(port);   
      listener.Start();   
      statusBarPanel1.Text   =   "开始监听......";   
      Thread   thread   =   new   Thread(new   ThreadStart(receive));   
      thread.Start();   
        
        
        
      private   void   receive()   
      {   
      sock   =   listener.AcceptSocket();   
      if(sock.Connected)   
      {   
      statusBarPanel1.Text   =   "与客户建立连系....";   
      string   str   =   richTextBox1.Text;   
      byte   []   bytee   =   System.Text.Encoding.BigEndianUnicode.GetBytes(str.ToCharArray());   
      sock.Send(bytee,0,bytee.Length,0);   
      //接受信息   
      while(!control)   
      {   
      NetworkStream   stream   =   new   NetworkStream(sock);   
      byte   []   by   =   new   Byte[1024];   
      int   i   =   sock.Receive(by,by.Length,0);   
      string   ss   =   System.Text.Encoding.BigEndianUnicode.GetString(by);   
      richTextBox2.AppendText(ss);   
      j   =   richTextBox1.Lines.Length;   
      if(j>=   2)   
      {   
      //如果不是@@@@@@@   
      if(richTextBox2.Lines[j-2].ToString()   !="   @@@@@@")   
      {   
      filestream     =   new   FileStream(richTextBox2.Lines[j-2].ToString(),FileMode.Open,FileAccess.Read);   
      //读文件   
      byte   []   bb   =   new   byte[1024];   
      while   ((number   =   filestream.Read(bb,0,1024)   )   !=   0)   
      {   
      stream.Write(bb,0,number);   
      stream.Flush();   
      }   
      //文件发送完成送EOF   
      string   st   ="<EOF>";   
      byte   []   byt   =   new   byte[1024];   
      byt   =   System.Text.Encoding.ASCII.GetBytes(st.ToCharArray());   
      sock.Send(byt,0,byt.Length,0);   
      filestream.Close();   
      }//if@@@@@@   
      else   if(richTextBox2.Lines[j-2].ToString()   ==   "@@@@@@")   
      {   
      control   =   true;   
      }   
      }//if(>=2)   
      }   
      }//if(sock.Connected)   
      }   
      //这里是接收端的   
      private   void   connectFuWu()   
      {   
      int   port   =   0;   
      IPAddress   myIP   =   IPAddress.Parse("127.0.0.1");   
      try   
      {   
      myIP   =   IPAddress.Parse(textBox2.Text);   
      }   
      catch     
      {   
      MessageBox.Show("你输入的IP地址格式不正确");   
      }   
      try   
      {   
      port   =   Int32.Parse(textBox3.Text);   
      }   
      catch     
      {   
      MessageBox.Show("请输入整数。");   
      }   
        
        
      try   
      {   
      if(textBox1.Text   !=   ""&&textBox2.Text=="")   
      {   
      client.Connect   (textBox1.Text,port);   
      statusBarPanel1.Text   =   "与服务器建立连接";   
      //获取网络流   
      netStream   =   client.GetStream();   
      byte   []   bb   =   new   byte[6400];   
      //读数据(服务器文件名)   
      i   =   netStream.Read   (bb,0,6400);   
      string   ss   =   System.Text.Encoding.BigEndianUnicode.GetString   (bb);   
      richTextBox1.AppendText(ss);   
      int   j   =   richTextBox1.Lines.Length;   
      for(int   k   =0;k<j-1;k++)   
      {   
      comboBox1.Items.Add(richTextBox1.Lines[k]);   
      }   
      comboBox1.Text   =   comboBox1.Items[0].ToString();   
      }   
      if(textBox1.Text   ==   ""&&textBox2.Text   !=   "")   
      {   
      client.Connect(myIP,port);   
      statusBarPanel1.Text   =   "与服务器建立连接";   
      //获取网络流   
      netStream   =   client.GetStream();   
      byte   []   bb   =   new   byte[6400];   
      //读数据(服务器文件名)   
      i   =   netStream.Read   (bb,0,6400);   
      string   ss   =   System.Text.Encoding.BigEndianUnicode.GetString   (bb);   
      richTextBox1.AppendText(ss);   
      int   j   =   richTextBox1.Lines.Length;   
      for(int   k   =0;k<j-1;k++)   
      {   
      comboBox1.Items.Add(richTextBox1.Lines[k]);   
      }   
      comboBox1.Text   =   comboBox1.Items[0].ToString();   
      }   
      if(textBox1.Text   !=""&&textBox2.Text   !="")   
      {   
      client.Connect(myIP,port);   
      statusBarPanel1.Text   =   "与服务器建立连接";   
      //获取网络流   
      netStream   =   client.GetStream();   
      byte   []   bb   =   new   byte[6400];   
      //读数据(服务器文件名)   
      i   =   netStream.Read   (bb,0,6400);   
      string   ss   =   System.Text.Encoding.BigEndianUnicode.GetString   (bb);   
      richTextBox1.AppendText(ss);   
      int   j   =   richTextBox1.Lines.Length;   
      for(int   k   =0;k<j-1;k++)   
      {   
      comboBox1.Items.Add(richTextBox1.Lines[k]);   
      }   
      comboBox1.Text   =   comboBox1.Items[0].ToString();   
      }   
      }   
      catch(Exception   err)   
      {   
      MessageBox.Show(err.Message);   
      }   
      }   
      //你可以把filestream换成图形就可以了   
      System.Drawing   
      Graphics   g;   
        
      g   =   this.CreateGraphics();是不是windows端的发送与接收??
      

  8.   

    http://doc.chinahtml.com/Manual/rhl-cg-zh_CN-9/s1-samba-configuring.html
    配置 Samba 服务器在unix上应该也可以,共享文件夹后,直接用File.Copy()就可以了.
      

  9.   

    你上面的代码是.NET下面的文件传输代码!!
      

  10.   

    建议用ftp或者http,这样不用写服务器端程序了,C#写ftp客户端似乎很简单吧,另外,想让C#的程序在unix上运行似乎不太可能,如果自己写服务器端的话就不能用C#了,假设你用C写了一个服务器端,那么恭喜你,你已经是个水平相当不错的程序员了,建议客户端也用C写吧