jor*_*era 5 c# sockets tcplistener tcpclient c#-4.0
我正在使用通过TCP协议接收文件的应用程序,应用程序处理文件然后通过相同的协议发送它,我接收文件没有问题,我的问题是当我尝试发送文件,因为我需要将文件发送到另一个正在侦听动态端口的应用程序,我用来发送这些文件的代码是:
internal void Send(byte[] buffer)
{
TcpClient _client = null;
try
{
_client = new TcpClient(RemoteIPaddress, Dynamic_port);
if (_client != null)
{
NetworkStream _clienttStream = _client.GetStream();
_clienttStream.Write(buffer, 0, buffer.Length);
_clienttStream.Flush();
_clienttStream.Close();
_clienttStream = null;
}
}
catch
{
if (_client != null)
{
_client.Close();
_client = null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如何通过TCP协议将文件发送到使用动态端口的远程计算机
通常,服务器应该在众所周知的端口上侦听连接请求。响应应包括服务器将进一步通信的端口号。然后您的应用程序连接到该端口以传输数据。
通信应执行以下操作:
这是被动 FTP 工作原理的简化版本。
要点是,只有两种方法可以通过动态端口连接到服务器。上面概述了第一种方法。如果您不能这样做,那么您的客户端应用程序将必须进行端口扫描,向一定范围内的每个端口发送连接尝试,并查看服务器在哪个端口上做出响应。然而,防火墙通常被编程为注意到这种类型的事情并关闭你(这是黑客行为)。
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |