社区
网络编程
帖子详情
如何用SOCKET编程实现POST数据到WEB服务器,并取得返回数据
iuhxq
2004-08-26 09:17:09
不要用http://dev.csdn.net/develop/article/11/11914.shtm这里提到的方式
只要用socket实现的,这样即可以学socket有可以解决问题,呵呵
...全文
523
10
打赏
收藏
如何用SOCKET编程实现POST数据到WEB服务器,并取得返回数据
不要用http://dev.csdn.net/develop/article/11/11914.shtm这里提到的方式 只要用socket实现的,这样即可以学socket有可以解决问题,呵呵
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iuhxq
2004-08-27
打赏
举报
回复
小弟我实在菜,能否把代码发给我?
iuhxq@hotmail.com
谢谢!
xdljf
2004-08-26
打赏
举报
回复
修正一下
sprintf(szBuffer, "GET %s HTTP/1.1\r\n", lpFileName);
看看flashget是怎么玩的,参考资料http://www.ietf.org/rfc/rfc2068.txt
Mon Jul 26 11:02:20 2004 正在连接代理服务器 127.0.0.1 [IP=127.0.0.1:1040]
Mon Jul 26 11:02:20 2004 已连接.
Mon Jul 26 11:02:20 2004 Socks: 05 01
Mon Jul 26 11:02:20 2004 Socks: 05 00
Mon Jul 26 11:02:20 2004 Socks: 05 01
Mon Jul 26 11:02:21 2004 Socks: 05 00
Mon Jul 26 11:02:21 2004 GET /down/beta_SocksOnlineV2.zip HTTP/1.1
Mon Jul 26 11:02:21 2004 Host: crc.onlinedown.net
Mon Jul 26 11:02:21 2004 Accept: */*
Mon Jul 26 11:02:21 2004 Referer: http://crc.onlinedown.net/down
Mon Jul 26 11:02:21 2004 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Mon Jul 26 11:02:21 2004 Pragma: no-cache
Mon Jul 26 11:02:21 2004 Cache-Control: no-cache
Mon Jul 26 11:02:21 2004 Connection: close
Mon Jul 26 11:02:21 2004 HTTP/1.1 200 OK
Mon Jul 26 11:02:21 2004 Server: Microsoft-IIS/5.0
Mon Jul 26 11:02:21 2004 Connection: close
Mon Jul 26 11:02:21 2004 Date: Mon, 26 Jul 2004 02:59:24 GMT
Mon Jul 26 11:02:21 2004 Content-Type: application/x-zip-compressed
Mon Jul 26 11:02:21 2004 Accept-Ranges: bytes
Mon Jul 26 11:02:21 2004 Last-Modified: Tue, 13 Apr 2004 03:09:13 GMT
Mon Jul 26 11:02:21 2004 ETag: "9e17cfb2421c41:934"
Mon Jul 26 11:02:21 2004 Content-Length: 351209
Mon Jul 26 11:02:21 2004 开始接受数据!
Mon Jul 26 11:02:25 2004 User Cancel at 165414.
oyljerry
2004-08-26
打赏
举报
回复
一个get的,看有没有帮助
SOCKET Socket;
Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (Socket == INVALID_SOCKET)
{
PRINTERROR("socket()");
return;
}
//
// Find the port number for the HTTP service on TCP
//
LPSERVENT lpServEnt;
SOCKADDR_IN saServer;
lpServEnt = getservbyname("http", "tcp");
if (lpServEnt == NULL)
saServer.sin_port = htons(80);
else
saServer.sin_port = lpServEnt->s_port;
//
// Fill in the rest of the server address structure
//
saServer.sin_family = AF_INET;
saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
//
// Connect the socket
//
int nRet;
nRet = connect(Socket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
if (nRet == SOCKET_ERROR)
{
PRINTERROR("connect()");
closesocket(Socket);
return;
}
//
// Format the HTTP request
//
char szBuffer[1024];
sprintf(szBuffer, "GET %s\n", lpFileName);
nRet = send(Socket, szBuffer, strlen(szBuffer), 0);
if (nRet == SOCKET_ERROR)
{
PRINTERROR("send()");
closesocket(Socket);
return;
}
purplelucy
2004-08-26
打赏
举报
回复
借楼主的地盘问一句。用POST方式发送数据时,正文数据的包装规则是什么呢?是不是空格以加号代替,特殊字符用ASCII码?那么中文该怎么弄呢?
Mycro
2004-08-26
打赏
举报
回复
我也有同样的问题,
能否远程操作Access 的数据库?
JJONY
2004-08-26
打赏
举报
回复
其实用SOCKET实现POST是一件比较简单的事件, 首先你要搞清楚HTTP协议的运作原理,具体的我就忘了, 在网上找找吧。 不过大概是HTTP协议都是以字符串传输。 也就是说客户端写上含“POST”格式的HTTP字符串发送到服务器端,然后等回应就得了。回应也是字符串,难点是你要把服务器的回应字符串中的字段进行解释。可能会受到网络速率问题,回应数据要分成多次的Recv接收,要做成IE那种边接收边显示,好难哦。
还有一个难点就是如果你有二进制数据如文件,那么要把它编码成BASE64,不过这个都可以在网上找到代码。
DentistryDoctor
2004-08-26
打赏
举报
回复
你这个的Post是什么意思?
sunshinee
2004-08-26
打赏
举报
回复
楼上几位已经说得很详细了,提醒一下,就是http中head和body之间是有一个空行的。
醉马不肖
2004-08-26
打赏
举报
回复
用siffer抓一些包,不就ok
purplelucy
2004-08-26
打赏
举报
回复
偶来写一段,自己收到想要的返回的信息了。不知道对楼主有点提示没有。
构造发送包:
CString StrSend;
StrSend.Format("POST /accessinterface.php HTTP/1.1\r\nHost: %s\r\n",hostip); //方法、请求的页面、HTTP版本、主机名
CString strtemp;
strtemp.Format("Referer: http://%s/index.asp\r\n",hostip);//Referer页面
StrSend += strtemp;
StrSend += "Accept:*/*\r\n"; //接受的数据类型
StrSend += "Accept-Language: zh-cn\r\n";//Accept-Language
StrSend += "Content-Type: application/x-www-form-urlencoded\r\n";
StrSend += "Accept-Encoding: gzip, deflate\r\n";
StrSend += "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\r\n";
StrSend += "Connection: Keep-Alive\r\n";
CString datasend;
//这是正文的数据,类似这样的格式提交给页面上的参数。哎呀,自己不会说。
datasend.Format("userID=%s&filename=%s&command=read&result=&reserved=1",
userID,filename);
int nLength = datasend.GetLength();
strtemp = "";
strtemp.Format("Content-Length: %d\r\n",nLength);
StrSend += strtemp; //发送内容的长度
StrSend += "\r\n"; //空行标志请求头的结束
StrSend +=datasend; //发送的数据段内容
后面就是send...
然后recv。。。分析收到的结果。这个不要说了吧。
C语言开发Linux下
web
服务器
(支持GET/
POST
,SSL,目录显示等)
在本项目中,我们将探讨如何使用C语言在Linux操作系统下开发一个功能丰富的
Web
服务器
,它支持HTTP协议的GET和
POST
请求、SSL加密以及目录显示功能。这个任务涉及到多个IT领域的核心概念,包括网络编程、系统编程、...
php使用socket
post
数据
到其它
web
服务器
的方法
标题中提到的知识点是“PHP使用Socket
POST
数据
到其它
Web
服务器
的方法”。在
Web
开发中,PHP是一种广泛使用的脚本语言,而Socket是一种网络通信的编程接口。通过Socket,PHP脚本可以创建客户端和
服务器
之间的网络连接...
VC++ Socket发送Http协议
Post
数据
包
1. **
Socket编程
**:Socket是网络通信的基本接口,它允许程序通过网络发送和接收
数据
。在C++中,通常使用Winsock库来
实现
Socket功能,该库提供了创建、连接、发送和接收
数据
等函数。 2. **HTTP协议**:HTTP(超文本...
VC Socket GET_
POST
发送HTTP请求示例
在IT行业中,网络通信是至关重要的部分,而
Socket编程
则是
实现
这一目标的基石。本文将深入探讨使用VC(Visual C++)进行
Socket编程
,特别是如何通过GET和
POST
方法发送HTTP请求。HTTP(超文本传输协议)是互联网上...
简易
Web
服务器
- `
Socket编程
`:Java中的`java.net.Socket`类和`ServerSocket`类用于
实现
TCP连接,这是
Web
服务器
与客户端通信的基础。 - `InputStream`和`OutputStream`:用于读取客户端的HTTP请求和向客户端
返回
HTTP响应。 - `...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章