小 小虫无限 Unregistered / Unconfirmed GUEST, unregistred user! 2006-01-20 #1 我用Serversocket和Clientsocket通信发送图片,Serversocket和Clientsocket也已经连接上了,但当server端一发送数据到client端时,就会出现“远程主机强迫关闭一个现有的连接”这个提示信息,百思不得其解,在大富翁里搜索的方法也不能解决,请高手帮忙!!!
我用Serversocket和Clientsocket通信发送图片,Serversocket和Clientsocket也已经连接上了,但当server端一发送数据到client端时,就会出现“远程主机强迫关闭一个现有的连接”这个提示信息,百思不得其解,在大富翁里搜索的方法也不能解决,请高手帮忙!!!
J jiajiajia888 Unregistered / Unconfirmed GUEST, unregistred user! 2006-01-21 #2 你把发送和接收的代码贴出来,我帮你看看,肯定是你的代码编写有问题
小 小虫无限 Unregistered / Unconfirmed GUEST, unregistred user! 2006-01-21 #3 客户端主要程序: var m:TMemoryStream; pointer; b,i,j,k:integer; s:string; begin m := TMemoryStream.Create; image1.Picture.Bitmap.SaveToStream( m );//假设有一图象控件 GetMem( p, m.size ); m.Position := 0; m.Read( p^, m.size ); ClientSocket.Socket.SendBuf( p^, m.size ); FreeMem( p ); m.Free; end; 服务器端的OnClientRead中: var pointer; m:TMemoryStream; begin GetMem( p, Size ); Socket.ReceiveBuf( p^, Size ); m := TMemoryStream.Create; m.Write( p^, Size ); m.Position := 0; image1.Picture.Bitmap.LoadFromStream(m);//假设有一图象控件 FreeMem(p); m.Free; end; 我是在本机测试的,端口用的是9756。
客户端主要程序: var m:TMemoryStream; pointer; b,i,j,k:integer; s:string; begin m := TMemoryStream.Create; image1.Picture.Bitmap.SaveToStream( m );//假设有一图象控件 GetMem( p, m.size ); m.Position := 0; m.Read( p^, m.size ); ClientSocket.Socket.SendBuf( p^, m.size ); FreeMem( p ); m.Free; end; 服务器端的OnClientRead中: var pointer; m:TMemoryStream; begin GetMem( p, Size ); Socket.ReceiveBuf( p^, Size ); m := TMemoryStream.Create; m.Write( p^, Size ); m.Position := 0; image1.Picture.Bitmap.LoadFromStream(m);//假设有一图象控件 FreeMem(p); m.Free; end; 我是在本机测试的,端口用的是9756。
5 5207 Unregistered / Unconfirmed GUEST, unregistred user! 2006-01-21 #4 把这两句去了!再试试 FreeMem( p ); m.Free;
J jiajiajia888 Unregistered / Unconfirmed GUEST, unregistred user! 2006-01-21 #5 你贴的代码不是解决问题需要的, server向client发送时的那个提示信息,是在server端出现的,还是在client端出现的, 你应该贴client端的接收代码。