应该没错,不过Tmpstr不能为空,否则MyStream.Write(TmpStr[1], Length(TmpStr));会报错.var tmpStr: String;
MyStream: TMemoryStream;
begin
NMUDP1.ReportLevel := Status_Basic;
NMUDP1.RemoteHost := '10.40.48.107';
NMUDP1.RemotePort := 8888;
NMUDP1.LocalPort := 7777; NMUDP2.ReportLevel := Status_Basic;
NMUDP2.RemoteHost := '10.40.48.106';
NMUDP2.RemotePort := 7777;
NMUDP2.LocalPort := 8888; TmpStr := Edit1.Text;
MyStream := TMemoryStream.Create;
try
MyStream.Write(TmpStr[1], Length(TmpStr));
NMUDP1.SendStream(MyStream);
finally
MyStream.Free;
end;
end;
MyStream: TMemoryStream;
begin
NMUDP1.ReportLevel := Status_Basic;
NMUDP1.RemoteHost := '10.40.48.107';
NMUDP1.RemotePort := 8888;
NMUDP1.LocalPort := 7777; NMUDP2.ReportLevel := Status_Basic;
NMUDP2.RemoteHost := '10.40.48.106';
NMUDP2.RemotePort := 7777;
NMUDP2.LocalPort := 8888; TmpStr := Edit1.Text;
MyStream := TMemoryStream.Create;
try
MyStream.Write(TmpStr[1], Length(TmpStr));
NMUDP1.SendStream(MyStream);
finally
MyStream.Free;
end;
end;
解决方案 »
- ServerSocket 怎么用呢;
- 一个关于抓取其他程序网络封包的DLL工程源代码。我编译不能通过,请各位指教。
- 最难的问题!如何与单位本部门新进来职位比自己高的人相处?看到自己辛辛苦苦工作的一切东西都要交给他,心里真难受,尤其是自己晋升的空
- 如何跟踪PARADOX数据库中数据的变动?急急急。。。。
- 有关XP中受限用户的注册表写入问题
- 在delphi中如何调用dos命令?在线等!
- 特急呀。不完成就不能下班了。 一个关于SHELL编程的问题,高手请进!!!!!!!!!!!
- [求助]如何用程序访问局域网中计算机时输入对方的帐号密码?
- 谁熟悉delphi 6.0阿!
- delphi6这个多线程的问题是不是bug?
- ADOConnection 问题
- 哪里有检测安装程序对于注册表的一些操作,告诉我软件的名称,或其他相关的知识全部可以
if not txbde.IsEmpty then
begin
txbde.First;
sendtt:='deludz'+tot+'*'+sxtx+'*0';
size:=length(sendtt);
GetMem(buf1,size+1);
FillChar(buf1^,size,#0);
StrPCopy(buf1,sendtt);
data1:=TMemoryStream.Create;
data1.Write(buf1^,size);
while not txbde.Eof do
begin //eof
if txbde.fieldvalues['dz']='0' then
begin //00
if (txbde.FieldByName('ip1').AsString<>'') and (txbde.FieldByName('port1').AsString<>'') then
begin
NMUDP1.RemoteHost:=txbde.FieldValues['ip1'];
NMUDP1.RemotePort:=strtoint(txbde.FieldValues['port1']);
try
NMUDP1.SendStream(data1);
except
end;
end;
end;//00
txbde.Next;
end; //eof
FreeMem(buf1);
data1.Free;我也是同样的问题,我是要发给多个客户端,请问为什么老是报错??Stream Write Error
if not txbde.IsEmpty then
begin
txbde.First;
sendtt:='deludz'+tot+'*'+sxtx+'*0';
size:=length(sendtt);
GetMem(buf1,size+1);
FillChar(buf1^,size,#0);
StrPCopy(buf1,sendtt);
data1:=TMemoryStream.Create;
data1.Write(buf1^,size);
while not txbde.Eof do
begin //eof
if txbde.fieldvalues['dz']='0' then
begin //00
if (txbde.FieldByName('ip1').AsString<>'') and (txbde.FieldByName('port1').AsString<>'') then
begin
NMUDP1.RemoteHost:=txbde.FieldValues['ip1'];
NMUDP1.RemotePort:=strtoint(txbde.FieldValues['port1']);
try
NMUDP1.SendStream(data1);
except
end;
end;
end;//00
txbde.Next;
end; //eof
FreeMem(buf1);
data1.Free;我也是同样的问题,我是要发给多个客户端,请问为什么老是报错??Stream Write Error
1.正确使用对象
2.USE
TRY
可能出现错误提示的语句集
EXCEPT
showyourErrMessage;
END
begin //eof
////////////////////<<修改成功(只发给聊天室里的UDP)/////////////////////////////////////////////////////
if txbde.fieldvalues['dz']='0' then
begin //00
if (txbde.FieldByName('ip1').AsString<>'') and (txbde.FieldByName('port1').AsString<>'') then
begin
sendtt:='deludz'+tot+'*'+sxtx+'*0'; //用户ID与头像
try //44
size:=length(sendtt);
GetMem(buf1,size+1);
FillChar(buf1^,size,#0);
StrPCopy(buf1,sendtt);
data1:=TMemoryStream.Create;
data1.Write(buf1^,size); NMUDP1.RemoteHost:=txbde.FieldValues['ip1']; //ipbde.Text; //FromIP;
NMUDP1.RemotePort:=strtoint(txbde.FieldValues['port1']); //strtoint(portbde.text); //Port; try
application.ProcessMessages;
NMUDP1.SendStream(data1);
finally
FreeMem(buf1);
data1.Free;
end; finally //44
txbde.Next;
end; //44 end
else
begin
txbde.Next;
end;
end;//00
加了这么多的外理怎么还出错???