我通过server向Client发数据(网络) ( 积分: 100 )

  • 主题发起人 flyerer1
  • 开始时间
F

flyerer1

Unregistered / Unconfirmed
GUEST, unregistred user!
我通过server向Client发数据,在下面code出错
CmbSendTo.Text :='192.168.0.156';
i :=strtoint(CmbSendTo.Text);
sendto(AcceptSock, SEND_PACKAGE,sizeof(SEND_PACKAGE), 0, FSockAccept, sizeof(FSockAccept));
错在i,应该怎么写?
 
有点迷糊??
CmbSendTo.Text :='192.168.0.156';
i :=strtoint(CmbSendTo.Text);
这是什么意思??
这条语句相当于
i :=strtoint('192.168.0.156');
这不可能执行啊!你要转换什么啊?
 
procedure TFormTCPUDP.BtnSendClick(Sender: TObject);
var SEND_PACKAGE : TUDPaction;
//数据发送
i:integer;
s,s1:String;
begin
Fillchar(SEND_PACKAGE.data,Data_Length,chr(0));
SEND_PACKAGE.data[0]:='1';
SEND_PACKAGE.data[1]:='2';
SEND_PACKAGE.data[2]:='3';
SEND_PACKAGE.opcode:=2;
SEND_PACKAGE.index:=PackageID;
SEND_PACKAGE.Command:=3;
s:=editsend.
Text;
for i:=0 to length(EditSend.
Text)-1do
SEND_PACKAGE.data:=s[i+1];
PackageID:=PackageID+1;
if not (Tcpflag and Serverflag) then
sendto(AcceptSock[0], SEND_PACKAGE,sizeof(SEND_PACKAGE), 0, FSockAccept[0], sizeof(FSockAccept[0]))
else
if AcceptNum=0 then
Application.MessageBox('没有一个客户端和您建立连接','信息提示',MB_OK)
else
begin

i:=pos(' ',CmbSendto.Text);
if i>0 then
begin

i:=strtoint(MidStr(CmbSendTo.Text,13,13));
// i=192.168.0.156
sendto(AcceptSock, SEND_PACKAGE,sizeof(SEND_PACKAGE), 0, FSockAccept, sizeof(FSockAccept));
// sendto(AcceptSock[0], SEND_PACKAGE,sizeof(SEND_PACKAGE), 0, FSockAccept[0], sizeof(FSockAccept[0]));
end
else
Application.MessageBox('您没有选择发送方','错误提示',MB_OK);
end;
// sendto(AcceptSock[0], NbtstatPacket,50, 0, FSockAccept[0], sizeof(FSockAccept[0]));
end;
 
这个我也不是很明白,说错了就不好意思了!!既然你有问题,大家一起研究
i:=strtoint(MidStr(CmbSendTo.Text,13,13));

i=192.168.0.156 ????? i是int型,能等于这个吗??
应该是
i=6 这样吧???
 
谢谢,问题已解决.
 
使用inet_addr函数可以得到IP的网络值
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
928
import
I
I
回复
0
查看
724
import
I
顶部