socket传送数据出现乱码的问题.急!!!(50分)

  • 主题发起人 主题发起人 永不言败
  • 开始时间 开始时间

永不言败

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾,我的程序在用socket传送数据时总出现乱码,请帮忙:
1) 客户端用delphi写传送数据的程序,阻塞方式
2) 服务器端用java写接受数据的程序,阻塞方式
请帮忙分析出现问题的可能性.

注:
1)当客户端用非阻塞方式(delphi写),服务器端不作任何改动,就OK
2)客户端的程序如下:

procedure TmyclientThread.Execute;
var
Wstream:twinsocketstream;
buffer:Pwidechar;
isend:integer;
begin
Wstream:=twinsocketstream.Create(form1.clientsocket1.socket,2000);
try
if (not terminated) and (form1.ClientSocket1.active) then
begin
  try
buffer:='END'+#0;
isend:=length(buffer)+1;
Wstream.Write(buffer,isend);
    .....   
except
  if not(Exceptobject is Eabort) then ...
end;
 end;
finally
Wstream.free;
end;
end;
 
procedure TmyclientThread.Execute;
var
Wstream:twinsocketstream;
buffer:wideString;
isend:integer;
begin
Wstream:=twinsocketstream.Create(form1.clientsocket1.socket,2000);
try
if (not terminated) and (form1.ClientSocket1.active) then
begin
  try
buffer:='END';
isend:=2*length(buffer)+2;
Wstream.Write(PWideChar(buffer),isend);
    .....   
except
  if not(Exceptobject is Eabort) then ...
end;
 end;
finally
Wstream.free;
end;
end;
 
to pipi 大虾:

  Wstream.Write(PWideChar(buffer),isend); 编译时通过不了
 
Wstream.Write(PWideChar(buffer)^,isend);
PWideChar(buffer)后面少了个 ^ 号
    
 
to pipi 大虾:
  用delphi自带的clientsocket控件和serversocket控件能否实现下面问题:
  1、client向server发送数据 'b1' ;
  2、sever接受到数据后向client发送数据 'e1'
  3、client接受到 'e1' 后再发 'b2';
4、sever 接受到 'b2' 后再发 'e2';
5、client 接受到 'e2' 后断开连接
  要求用阻塞方式 并且在一次 socket 连接中完成

  我写的程序在2步中由server向client发数据'e1'时出错。
请给出实例程序

谢谢!!! 有加分 50



  
 
问题解决
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部