请问我用SERVERSOCKET和CLIENTSOCKET为什么不能在INTERNET上通讯??(100分)

  • 主题发起人 主题发起人 cocoboy79
  • 开始时间 开始时间
C

cocoboy79

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TSERVERSOCKET和TCLIENTSOCKET做了个网络通信程序,可以传远程文件
可是只能用于LAN中,要是在INTERNET上试,就会报错???好像是找不到目标机器一样。

为什么在LAN中没问题呢??? 在INTERNET中就不行?!!
我用的是WIN2000PRO,拔号上网。




































 
你的本机IP是假IP,或者对方的IP是虚假的IP,或者2者都是假的,没有其他解释了
 
别看我程序里是127那个的,那是个样子,用的时候填的是拔号上网的IP。
对方也是,都是真的IP没什么假的,可是每次一联就报错,就是那个目标机
器找不到时报的那种错,反过来他当SERVER我做CLIENT也一样。
 
不会把?我想只有IP的问题,没其他问题,你在LAN里测试没有问题,在INTERNENT
基本就没有太大问题了。好好找找有没有什么BUG
 
下面是部分程序,这个实际上是一个远程传送对方目录列表的,可是现在在LAN上什么事都没有
就是到了INTERNET就用不了!
我想是不是TSERVERSOCKET和TCLIENTSOCKET要做什么设置我忘了?
或是这两个控件只认网卡的IP,不认MODEM的,请注意网卡的MAC都不一样,可是MODEM的一样
两者在处理上是不同的,是不是问题出在这里。

//this is server
procedure TForm3.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:=8181;
ServerSocket1.Open;
end;

procedure TForm3.ServerSocket1ClientRead(Sender: TObject; //connected and read from client
Socket: TCustomWinSocket);
var
TmpStr,SRecStr:string;
begin
SRecStr:=Socket.ReceiveText;

if SRecStr='BeginRead' then // receive information and send
server logical drives letter to client
begin
Label3.Caption:='client is connected';
socket.SendText('Drv'+LoadDrives);// send infomation to client;
end;


// this is client
procedure TForm1.RemoteIP1Click(Sender: TObject);
var
RemoteIP:string;
begin
RemoteIP:=Inputbox('Please Input IP Address of Remote Server','Server
IP:','202.99.20.8');
ClientSocket1.Address :=RemoteIP; //<<----Server ip address
ClientSocket1.Port:=8181;
end;

procedure TForm1.Start1Click(Sender: TObject); //active onnection
begin
if not ClientSocket1.Active then ClientSocket1.Active :=true;
end;







 
你们两个ip是不是相通的呢?
 
你可以先ping一下对方的ip,看看通不通。
 
PING真没试,不过我们用QQ可以聊天,也没有‘通过服务器转发’这样的字出现。
对方也是拔号上网。
 
你先PING对方的机器再说,我想八成是PING不通的,否则也不会出这个问题
 
我faint,只要你们两个都可以连上QQ的服务器,就算不通,都可以聊天。
你看看你发的信息后面是不是有一个括号写着“通过服务器转发”
我想你对网络不是很熟,先搞好基础,再编程吧。
 
跟我做的那个项目一样,我最近还在测试其稳定性,SOCKET通讯中有面向连接和无连
接两种,你其实可以不用控件做好一点控制的,那样灵活一点,再一点是在INTERNET是
要找准IP,与网卡识别的IP不同!
 
今天试了一下已经没有问题了,只是重安了OS,真是很怪,我看我还是自已想吧,
不敢再在这里问了‘高手’太多!!

TO cavenfeng 你说话客QI点,你说网络很熟么,还什么选搞好基础先,你以为
就你知道那个通过“通过服务器转发” 么!! 真是莫名其妙!

我发现这里气氛怎么没有CSDN好啊,以前在那从没碰到过cavenfeng这种人,真XX
还是去CSDN吧。






 
后退
顶部