关于SOCKET的问题

jingling76 2007-01-26 05:17:23
大家看看这样的socket中使用POST格式对不对?
...
char strPOST[4000];
memset(strPOST, 0x00, 4000);
...
strcpy(strPOST, "POST check.asp/makeLogin?agent HTTP/1.1\r\n");
strcat(strPOST, "Accept: */*\r\n");
strcat(strPOST, "Accept-Language: zh-cn\r\n");
strcat(strPOST, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MSIE 6.01)\r\n");
strcat(strPOST, "Host: 172.28.118.12:80\r\n");
strcat(strPOST, "Content-Length: 1309568\r\n");
strcat(strPOST, "Content=<?xml version="1.0" encoding="UTF-8"?><user><type>1</type><notesId>abcc</notesId><loginName>54321</loginName></user>\r\n");
strcat(strPOST, "Connection: Keep-Alive\r\n");
strcat(strPOST, "\r\n");
...
send(s, strPOST, strlen(strPOST),0);
...
...全文
374 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cnwanglin 2007-01-27
  • 打赏
  • 举报
回复
看了半天,我倒

就是发字节流,有什么好问的,自己抓个包看看,问什么问,问你个头啊
jingling76 2007-01-27
  • 打赏
  • 举报
回复
ioctlsocket(s,FIONBIO,&non_blocking);
kbsoft 2007-01-26
  • 打赏
  • 举报
回复
send返回374证明发送了374个字节流,应该没有问题
recv返回-1,证明没有接收到,你是不是为非阻塞模式?
jingling76 2007-01-26
  • 打赏
  • 举报
回复
strerror(WSAGetLastError())为Unknown error
jingling76 2007-01-26
  • 打赏
  • 举报
回复
to jixingzhong(瞌睡虫·星辰);
转义的没问题了

to kbsoft(让世界充满爱!)
send返回374
recv返回-1

jingling76 2007-01-26
  • 打赏
  • 举报
回复
测试中...
kbsoft 2007-01-26
  • 打赏
  • 举报
回复
WSAGetLastError()的返回值为10054的话,那就证明数据量太大,在非阻塞模式下,无法立即得到数据.
kbsoft 2007-01-26
  • 打赏
  • 举报
回复
如果是非阻塞模式,SEND的返回值为10054的话,那就很正常了,改为阻塞模式,用ioctlsocket
kbsoft 2007-01-26
  • 打赏
  • 举报
回复
"收到SERVER那里的信息为空,"

你用的阻塞模式还是非阻塞模式?
jixingzhong 2007-01-26
  • 打赏
  • 举报
回复
...
strcpy(strPOST, "POST check.asp/makeLogin?agent HTTP/1.1\r\n");
strcat(strPOST, "Accept: */*\r\n");
strcat(strPOST, "Accept-Language: zh-cn\r\n");
strcat(strPOST, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MSIE 6.01)\r\n");
strcat(strPOST, "Host: 172.28.118.12:80\r\n");
strcat(strPOST, "Content-Length: 1309568\r\n");

/*这个语句中, 复制的字符串内部的 引号需要使用转义表达*/
strcat(strPOST, "Content=<?xml version=\"1.0\" encoding=\"UTF-8\"?><user><type>1</type><notesId>abcc</notesId><loginName>54321</loginName></user>\r\n");

strcat(strPOST, "Connection: Keep-Alive\r\n");
strcat(strPOST, "\r\n");
...
jixingzhong 2007-01-26
  • 打赏
  • 举报
回复
对于 ' " 等特殊字符需要使用 转义表示
jixingzhong 2007-01-26
  • 打赏
  • 举报
回复
字符串操作有问题
ouyh12345 2007-01-26
  • 打赏
  • 举报
回复
先判断send的返回值
jingling76 2007-01-26
  • 打赏
  • 举报
回复
收到SERVER那里的信息为空,不知道是我这里发的不对还是什么问题,先确认我发过去的没问题就可以
kbsoft 2007-01-26
  • 打赏
  • 举报
回复
你是想按照XML的方式来传送消息吧.没看出有什么问题.

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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