如何从远程计算机获取文件?

时间:2010-05-04 13:30:54

标签: c# .net visual-studio visual-studio-2008 c#-3.0

如何从远程计算机获取文件?我知道远程计算机IP和51124端口是打开的。我需要这个算法:(

这是一个Windows应用程序Visual Studio 2008

1)通过51124端口连接192.xxx.x.xxx ip 2)文件名:123456(我想在远程机器上搜索)
3)获取文件
4)保存C:\ _

51124端口已打开。我可以访问,我可以根据文件名搜索任何文件? 我的代码如下:


IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 51124);
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
sock.Bind(ipEnd);
sock.Listen(maxConnections);
Socket serverSocket = sock.Accept();
byte[] data = new byte[bufferSize];
int received = serverSocket.Receive(data);
int filenameLength = BitConverter.ToInt32(data, 0);
string filename = Encoding.ASCII.GetString(data, 4, filenameLength);
BinaryWriter bWrite = new BinaryWriter(File.Open(outPath + filename, FileMode.Create));
bWrite.Write(data, filenameLength + 4, received - filenameLength - 4);
int received2 = serverSocket.Receive(data);
while (received2 > 0) {
    bWrite.Write(data, 0, received2);
    received2 = serverSocket.Receive(data);
}
bWrite.Close();
serverSocket.Close();
sock.Close();

MyQuery(targetip,port,filename)

我可以这样使用它:MyQuery(192.xxx.x.xxx,51124,“MyNeddedFile”);

< / p>


MyQuery(targetip, port, filename)
{

.....
...
..
.


}

1 个答案:

答案 0 :(得分:4)

你现在已经尝试过几次问这个问题了 - 也许这就解释了为什么我们无法回答你的问题:

如果您有FTP服务器,它(默认情况下)将侦听端口21.因此,如果我根据FTP协议向端口21发送消息,它将响应。

如果我有apache或IIS(或其他一些网络服务器)监听端口80,并且我向它发送一条FTP消息,它会给我一个错误,因为他们期待HTTP请求。

在不知道应用程序正在侦听端口51124的情况下,我们无法告诉您如何与它进行对话。

相关问题