版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://larch.blog.51cto.com/277889/51991 |
最近在写一个基于Socket的MFC程序,要求客户端可以使用HTTP代理来连接到服务端。网上查了一堆资料,居然没看到几个好的,是我查找方式有误吗>_<。谁有现成封装好的包给我一个吧。 总之,整理了下一堆资料,再改了网上几个例子(主要是“HTTP 隧道 (HTTP代理Socket客户)”这篇,其实我也就把那里面的CSocket改成SOCKET了),搞出下面这堆东西。
SOCKET socketsend=socket(AF_INET,SOCK_STREAM,0);//创建Socket 到这里代理服务器就连接成功了,然后就可以直接用上面的socketsend来发送和接受数据。 比如: send(socketsend,"try to send some words",128,0); recv(socketsend,buf,128,0);
这个是 阻塞模式的例子,用的windows的api,大家将就看一下吧,谁有非阻塞模式的麻烦发我一个…… 其实整个过程非常简单,就是: 1.connect代理服务器 2.发送一个包,格式为:CONNECT ip:port HTTP/1.1/r/nUser-Agent: MyApp/0.1/r/n/r/n 这里的ip和port是你真正需要连接的服务器的ip和端口。 3.接受服务器的回应,如果回应里带有“HTTP/1.X 200 ”的字样,就表示连接成功。以后你就可以用这个socket直接发送数据了。
本文出自 “落叶松” 博客,请务必保留此出处http://larch.blog.51cto.com/277889/51991 |