clientsocket问题!(20分)

  • 主题发起人 主题发起人 zhouhuilun
  • 开始时间 开始时间
Z

zhouhuilun

Unregistered / Unconfirmed
GUEST, unregistred user!
我的连接部分代码如下:
var
Date,timestamp:string;
size:integer;
str:array[0..8] of char;
begin
fillchar(str,sizeof(str),0);
timer1.Enabled:=false;
memo2.Lines.Add('*************向服务端发送连接请求*************');
DateTimeToString(date,'zzzz',now);
fillchar(SHead,sizeof(SHead),0);
fillchar(SConnect,sizeof(SConnect),0);
size:=sizeof(SHead)+sizeof(SConnect);
SHead.Total_length:=htonl(size);
SHead.Command_ID:=htonl(CMPP_CONNECT);
SHead.Sequence_ID:=htonl(strtoint(date));
strpcopy(SConnect.Source_Addr,edit6.Text);
datetimetostring(timestamp,'mmddhhmmss',now);
strpcopy(SConnect.AuthenticatorSource,md5print(md5string(edit6.Text+str+edit8.Text+timestamp)));
SConnect.Version:=strtoint(edit7.Text);
timestamp:=format('%16d',[strtoint(timestamp)]);
SConnect.Timestamp:=htonl(strtoint(timestamp));
socket.SendBuf(SHead,sizeof(SHead));
socket.SendBuf(Sconnect,sizeof(sconnect));
为什么我一连接,服务端就主动断开了连接,是不是我的代码有问题??
我很急,各位大虾帮帮忙!!!!
 
很多变量类型不明,不太容易判断
 
CMPPHead=record
Total_length:longword;
Command_ID:longword;
Sequence_ID:longword;
end;
CMPPConnect=record
Source_Addr:array[0..5] of char;
AuthenticatorSource:array[0..15] of char;
Version:byte;
Timestamp:longword;
end;

你看看吧,我定义的类型。
 
你的设置的协议信息可能有问题,
 
但是有些服务器又可以,我就不知道怎么回事了:(
 
可能是服务器的设置不一样把
 
你觉得我的代码本身有没有问题??????
 
发送后报10053错误,好象是什么异步的问题吧
asynchronous socket 错误 10053
报的就是这个错,我应该怎么处理啊,拜托各位了,我很急。
 
这部分代码看不出来什么?
不知道你先连接上服务器没有?
 
5555………………,无忌兄,你终于来了,等得我好苦啊!!!!
我一开始就将clientsocket设了true了,你说会不会是因为server要求同步传输的问题???
 
应该不会啊,,,你最好是手动把ClientSocket设为true在连接上以后在发送
上面的数据。
 
还是一样的,你说是server端与client端协议不对的可能性大,还是socket本身设置可能性大。
 
应该是Client的设置不对把!
 
5555………………,可是delphi的clientsocket的设置也就那么几个 了啊!!!!
 
是发送数据的格式有问题,
 
我觉得应该也是,但我无法解释为什么会报这个错 “asychronous socket 错误 10053”
 
我猜是这样,第一个socket.SendBuf(SHead,sizeof(SHead));后,服务器发现受到的数据
有问题,马上断开连接,所有你的程序第二个SendBuf就会报10053错误
 
恩,我现在发现好象也是这里有错,我先去研究研究。谢了
 
多人接受答案了。
 
后退
顶部