[求助]为什么我recv的数据为零

n00000000p 2007-03-08 11:10:41
利用GET命令提交一个HTTP数据包:

.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
include wsock32.inc
include Ws2_32.inc
includelib user32.lib
includelib kernel32.lib
includelib wsock32.lib
includelib Ws2_32.lib
TCP_PORT equ 80 ;常量定义
.data
@wsaData WSADATA <>
@stAddr sockaddr_in <>
szHostName db "http://www.wolfexp.net/",0
sz3 db 156 dup(0)
sz1 db "GET /forum/index.php HTTP/1.1",13,10
db "Host: http://www.wolfexp.net/",0
.data?
hSocket SOCKET ?
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke WSAStartup,202h,addr @wsaData ;初始化WSAStartup库
invoke WSASocket,PF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0 ;加载套接字
mov hSocket,eax ;保存句柄
invoke htons,TCP_PORT ;设置端口
mov @stAddr.sin_port,ax ;保存
invoke gethostbyname,addr szHostName
.if eax
mov eax,[eax + hostent.h_list] ;取h_list指针
.while dword ptr [eax]
mov ecx,[eax] ;取一个IP地址的指针
mov ecx,[ecx] ;用指针取出IP地址
invoke inet_addr,ecx
mov @stAddr.sin_addr,eax
.endw
.endif
mov @stAddr.sin_family,AF_INET ;设置IP格式
invoke bind,hSocket,addr @stAddr,sizeof @stAddr
invoke connect,hSocket,addr @stAddr,sizeof @stAddr
invoke lstrlen,addr sz1
invoke send,hSocket,addr sz1,eax,0
invoke recv,hSocket,addr sz3,sizeof sz3,0
invoke MessageBox,NULL,addr sz3,NULL,MB_OK
invoke closesocket,hSocket
invoke ExitProcess,NULL
end start

服务器返回是空白,为虾米?大家帮我看看
...全文
212 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
n00000000p 2007-03-09
  • 打赏
  • 举报
回复
....有时候我怀疑是HTTP构造错误,不过这个HTTP包是自己抓包得来的 :(
大熊猫侯佩 2007-03-09
  • 打赏
  • 举报
回复
mark

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧