recv和send函数(100)

  • 主题发起人 主题发起人 littlecat2008
  • 开始时间 开始时间
L

littlecat2008

Unregistered / Unconfirmed
GUEST, unregistred user!
winsock的send 和Recv函数怎么发送tmemorystream?比如:MStream:=TMemoryStream.Create;MStream.LoadFromFile('aa');Send(ASocket,RecvStream,SizeOf(RecvStream),0);//发送数据客户端怎么收不到数据啊,也不知道服务器端发没发出去。- -# 好像说的有点不太清楚,aa文件肯定有的,而且msstream里面数据存到cc.txt文件里也能看到,就是不知道发出去了没,反正对端收不到。 //接收消息 MStream:=TMemoryStream.Create; re := recv(socket1, MStream, 102400, 0); 我是菜鸟,知道的千万别只是路过啊[:D]
 
看看 send 函数定义:int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序要发送数据的缓冲区;第三个参数指明实际要发送的数据的字节数;第四个参数一般置0。你应该使用MStream:=TMemoryStream.Create;MStream.LoadFromFile('aa');Send(ASocket, MStream.Memory^, MStream.Size, 0);
 
不知道sizeof什么意思又何必乱用,部分公的母的一通乱插,lz真是豪放。
 
不知道sizeof什么意思又何必乱用,部分公的母的一通乱插,lz真是豪放。 呵呵,....LSUPER 回答的肯定没得问题
 
[:D]帮人帮到底,我对端这样收,还是收不到啊。 MStream:=TMemoryStream.Create; re := recv(socket1, MStream.Memory^, 102400, 0); MStream.SaveToFile('1.txt'); FreeAndNil(MStream);说了是菜鸟嘛[:D]
 
[^]不会又把人吓晕了吧?以前没做过这个,哈
 
翘首等待中....
 
RecvStream 是什么?这样?~Send(ASocket,RecvStream.Memory,RecvStream.Size, 0); // 发送数据
 
MStream:TMemoryStream;这种类型Send(ASocket,RecvStream.Memory,RecvStream.Size, 0); 这样写语法错误啦
 
re := recv(socket1, MStream.Memory^, 102400, 0); if(re=SOCKET_ERROR) then ShowMessage('收取失败');显示收数据失败了,为什么啊?[:(]
 
MStream.SetSize(102400); ZeroMemory(MStream.Memory,102400); //初始化空间 re := recv(socket1, MStream.Memory^, 102400, 0); if(re=SOCKET_ERROR) then ShowMessage('收取失败');收到数据了,谢谢大家[:D]
 
多人接受答案了。
 
后退
顶部