socket通信,本机可以,但是LAN上不行。为什么????

dongdong530 2001-10-30 03:50:36
SERVERSOCKET: WIN98,IP: 10.0.0.190;
CLIENTSOCKET: WIN2K,IP: 10.0.0.198;

客户在尝试连接时,报告SOCKET 错误。服务器方没有反应。

各位大虾,请问可能的原因是什么?请帮帮我啊。
...全文
367 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
saimaya 2001-11-01
  • 打赏
  • 举报
回复
关注
oocoolie 2001-11-01
  • 打赏
  • 举报
回复
哦,看成socketconnection了,sorry
wwwunix 2001-11-01
  • 打赏
  • 举报
回复
1、第一个问题基本可以确定为tcp/ip没装好。
2、第二个问题能否说详细一点,我还没明白什么意思。:-(
dongdong530 2001-10-31
  • 打赏
  • 举报
回复
你知道我在等你吗?
wwwunix 2001-10-31
  • 打赏
  • 举报
回复
另:转至网络版吧
wwwunix 2001-10-31
  • 打赏
  • 举报
回复
1、在client上用ping 10.0.0.190看能否通?(测试tcp/ip是否正确)
2、用“搜索计算机”可以互相找到对方,只能说明网络是通的,但不能说明tcp/ip是否正确
wisenowa 2001-10-31
  • 打赏
  • 举报
回复
局域网上的机子多吗?
使用相同的操作系统试试;
dongdong530 2001-10-31
  • 打赏
  • 举报
回复
大虾,你在哪里?你在哪里?你在哪里?你在哪里?你在哪里?你在哪里?
dongdong530 2001-10-31
  • 打赏
  • 举报
回复
SOCKET在本机上发送,一切正常。发送函数为:SENDFILE(FILENAME:STRING,IP:STRING);

本机上调用时,先在本机上启动SERVER端程序,然后在客户端调用SENDFILE("C:\1.TXT",127.0.0.1); 正常。

在LAN上调试时,除了将SERVE端程序在SERVER机器上运行后。客户用SENDFILE("C:\1.TXT",10.0.0.190); 也就是说,只是客户端调用时用了此时SERVER机器的IP而已,没有别的改动。

其中,本机(客户)IP为10.0.0.198 (WIN2k系统),
SERVER机器IP为10.0.0.190.(WIN98系统)。

CLIENT和SERVER用“搜索计算机”可以互相找到。

我追踪客户代码时,发现执行clientsocket1.active := true后,服务器端没有反应,
而客户端在等待大约5秒后异常,错误代码:10060。

请大家帮我 UP !!!
dongdong530 2001-10-31
  • 打赏
  • 举报
回复
{ 客户端响应并处理服务器端的动词 }
procedure ClientEchoForVerb(AVerb: TSocketVerb; DataBuf: TDataBuf; DL: Integer;
var SendBuf: TSendBuf; var SendSize: Integer;
AClientSocket: TClientSocket);
var
P: PSocketData;
DBuf: TDataBuf;
ResL, L: Integer;
EchoVerb: TSocketVerb;
begin
SendSize := 0;
P := AClientSocket.Socket.Data;

if (P <> nil) and (P^.OnLine) then showmessage(IntToStr(AVerb));
//执行到这里时,当AVerb表示“从服务器端发送到客户的第一个数据包时”,按F7会
//自动跳到ClientSocket1Read(..),再读一次,而不是紧接着往下执行。WHY????????

if (P <> nil) and (P^.OnLine) then case AVerb of
vsNone,
............
dongdong530 2001-10-31
  • 打赏
  • 举报
回复
已转至网络版。
问题已经基本解决。我在另外一个LAN内试出来了,我也不知道为什么,总之我的程序没有改动。但是,又碰到了一个问题。比如:

procedure a(....)
begin

bb := 0;
在执行这条语句时,老是自动跳到CLIETNSOCKET的onread中。空读一次。比如,我读到一个动词,正准备分析,在执行bb := 0 时,会去空读,这样,读出的动词就是空的。出错。不知道为什么。单机正常。


end





chenjbjbjb 2001-10-30
  • 打赏
  • 举报
回复
"你还没有运行scktwrvr.exe吗?这是必须要在服务器端运行的 "
you are wrong!
maybe the programs have some problem.try it in the same machine.and debug it
step by step

oocoolie 2001-10-30
  • 打赏
  • 举报
回复
你还没有运行scktwrvr.exe吗?这是必须要在服务器端运行的

dongdong530 2001-10-30
  • 打赏
  • 举报
回复
客户端在执行 ... = ACTIVE语句后,就尝试连接,处于等待状态,这是服务器方没有反应。等大概5秒,客户方异常。 错误代码是: 100060,意思就是不能连接。

大家帮我UP。谢谢了。
dongdong530 2001-10-30
  • 打赏
  • 举报
回复
是不是要运行scktsrvr.exe?这是个什么东西?
dongdong530 2001-10-30
  • 打赏
  • 举报
回复
木易,是在目标SERVER上运行的(WIN98那台电脑)。
IP: SERVER是 10.0.0.190. CLIENT是 10.0.0.198.我在CLIENT上设置SOCKET的IP为10.0.0.190. PORT都设置为 1234.

WHY???????????????????
di2000 2001-10-30
  • 打赏
  • 举报
回复
端口设置是否一致
wwwunix 2001-10-30
  • 打赏
  • 举报
回复
我把服务器方程序先运行了,等待客户连接。
-----是在目标server上运行的吗?
socket的ip和port设置正确吗?

dongdong530 2001-10-30
  • 打赏
  • 举报
回复
谢谢。网络是通的。用“搜索计算机”可以互相找到对方。
“在LAN上的服务器上没装/没运行相应的服务程序。”是什么意思?我把服务器方程序先运行了,等待客户连接。

在本机上用127。0。0。1地址无问题。

请问DNS、网关设置有影响吗?我想不应该的呀。只要TCP/IP设置好不就行了?

dongdong530 2001-10-30
  • 打赏
  • 举报
回复
谢谢。请大家继续关注
1
加载更多回复(2)

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧