我知道这个话题已经被问到,我已经使用了很多来自互联网的帖子,比如codeproject,stackoverflow,但是我仍然不能在2台计算机之间传输数据而不是LAN网络。通过互联网进行数据传输
在LAN上传输还是通过互联网传输有区别吗?我需要临时服务员来完成这项任务吗?
我的程序正在研究LAN网络,但是当我尝试在WAN网络中测试程序时,我在我的朋友的计算机中设置了远离我的服务器(接收),然后在我的计算机中,用我朋友的电脑的IP替换了局域网的IP,但它不起作用。我误解了任何东西吗?
如果您不了解我,请给我链接解决方案或教我如何在2台不在LAN的计算机上传输数据。非常感谢你,对我英语不好的话感到抱歉。
CODE:(只进行连接)
接收:(我设置此我朋友的机器上)
namespace RecieveFile
{
public partial class Form1 : Form
{
#region Variables
private Thread thrDownload;
private Stream strLocal;
private NetworkStream strRemote;
private TcpListener tlsServer;
#endregion
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
thrDownload = new Thread(StartRecieving);
thrDownload.Start();
}
public void StartRecieving()
{
try
{
string hstServer = Dns.GetHostName();
IPAddress ipaLocal = Dns.GetHostEntry(hstServer).AddressList[0];
if (tlsServer == null)
{
tlsServer = new TcpListener(IPAddress.Any, Convert.ToInt32(29250));
}
tlsServer.Start();
TcpClient tclServer = tlsServer.AcceptTcpClient();
MessageBox.Show("Connection has been created");
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
strLocal.Close();
strRemote.Close();
MessageBox.Show("In finally");
StartRecieving();
}
}
}
}
发送:(我成立这个在我的机器)
private void Form1_Load(object sender, EventArgs e)
{
//171.255.9.234 is my friend's IP
//if this ip is a ip of computer in my LAN network, it can work
ConnectToSever("171.255.9.234", 29250);
}
public void ConnectToSever(string severIP, int severPort)
{
tcpClient = new TcpClient();
try
{
tcpClient.Connect(severIP, severPort);
MessageBox.Show("Connection has been created!","Message");
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
请显示代码,否则这只是为我们猜测。 – deathismyfriend 2014-11-08 18:43:01
假设通过TCP/IP进行通信,从应用程序代码的角度来看没有任何区别。有了这里提供的信息,没有人真的能够告诉你很多,但不管它是服务器故障的更多问题,尽管它们也可能拒绝它。 – 2014-11-08 19:45:28
感谢您的通知,我已经添加了代码,希望我能得到答案。 – 2014-11-09 02:22:16