请教如何在delphi的socket编程中接收VC程序发过来的socket包 ( 积分: 50 )

  • 主题发起人 主题发起人 柳帆
  • 开始时间 开始时间

柳帆

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟的服务器端使用delphi的socket编程,但是别人的客户端是用VC编的,包的格式如下:
^^Head=PackStart^^taskno=asktelnummsg^^telnum=13602586175^^end^^
请问在服务器端应该怎么取道号码,并查询地址后返回包
 
小弟的服务器端使用delphi的socket编程,但是别人的客户端是用VC编的,包的格式如下:
^^Head=PackStart^^taskno=asktelnummsg^^telnum=13602586175^^end^^
请问在服务器端应该怎么取道号码,并查询地址后返回包
 
这和用什么语言编写的发包程序是没有关系的
在服务器端侦听端口就行了
还有你想问的查询地址是查询哪个地址
本机地址用WinSocks查询
对方地址在包里
 
谢谢回答,那么在服务器端如何解包并获取包中得电话号码呢
 
希望高手们给点建议
 
如果想获得客户机的ip地址应该怎么做,高分等候
 
用getpeername取对方的IP地址。
如果你用TWinSocket可以用GetRemoteAddress取。
 
在哪个菜单里面啊,我怎么找不到,请指点
 
我是用Tserversocket请问应该用什么取客户端的ip地址
 
ServerSocket1.Socket.Connections[0].RemoteAddress
 
谢谢拉,那么我应该怎么取客户端发来的socket包内的某个字段例如:
^^Head=PackStart^^taskno=asktelnummsg^^telnum=13602586175^^end^^
我要取出号码应该怎么做
 
高手们,给点回复把,小弟要得急
 
其实这个问题就归结为字符串分离了。
procedure TForm1.Button1Click(Sender: TObject);
var Strs:TStrings;
str:string;
i:integer;
begin
str:='^^Head=PackStart^^taskno=asktelnummsg^^telnum=13602586175^^end^^';
strs:=tstringlist.Create;
strs.Text:=stringreplace(str,'^^',#13#10,[rfReplaceAll]);
for i:=0 to strs.Count-1 do
if copy(strs,1,7)='telnum=' then
begin
str:=copy(strs,8,length(strs)-8);
showmessage(str);
break;
end;
freeandnil(strs);
end;
 
TYZhang:
现在服务器端可以运行拉,但是我现在困惑的是如何在客户端发出这样的socket包,这样才能测试啊,或者说服务器端如何打包查询结果响应客户端
TYZhang:
不知道你有没有qq号,我想多向你请教
 
接受答案了.
 

Similar threads

后退
顶部