zaowei21的专栏

技术问题.程序设计方面,有一些经典的文章是转贴的.

用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
zaowei21的公告
<script type="text/javascript"><!-- google_ad_client = "pub-9495000945733010"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_type = "text_image"; google_ad_channel = ""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
文章分类
ECLIPSE
ECLIPSE主页
JAVA天堂
HIBERNATE
HIBERNATE中文站
HIBERNATE英文站
JAVA
中国JAVA网
台湾JAVA网
JBOSS
JBOSS网站
MYSQL
MYSQL网站
STRUTS
友人的链接
有条不絮(RSS)
订票电话网
存档

原创  C++的SOCKET一些笔记. 收藏

我是在BCB6下写的程序,不一定通用.最近才开始学习.

使用STRING:

1 引用不带H.

2 要使用名字空间:using namespace std;

否则会出些错误,至少在BCB下是这样的.

域名转换为IP:

gethostbyname()

代码:

string gethostip(string &host)
{
WSADATA wsaData;
string IP;
int pos=0;
char temp[255];
strcpy(temp,host.c_str());
while(temp[pos++]=='\\');
pos--;
WSAStartup(MAKEWORD(2,0),&wsaData);
if(host.empty() )
{
char hostname[128];
if(gethostname(hostname,128)!=0)
return string("");
host=hostname;
}
try
{
struct hostent *hp=gethostbyname(temp+pos);//host.c_str());
if (hp== NULL)
{
IP="";
}
else
IP=inet_ntoa(*(struct in_addr*)hp->h_addr_list[0]);
}
catch(...)
{
IP="";
}
WSACleanup();
printf("%s\n\r",IP);
return IP;
}

这段代码是网上找到的.我稍改了一点.在BCB下通过.

用SOCKET读网页的时候有时候会阻塞停在这个函数处recv()

网上有朋友介绍了几种方案,我是用setsockopt这个来解决的.

效果还好.至少不会停住不动了.

向网站发送GET请求的时候,要加HOST:域名.


C++的这个目前看是比C#速度快一些.

发表于 @ 2008年03月15日 00:02:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:建立行动习惯的七种方法 | 新一篇:强!Windows 2008十大实用改进(推荐)

  • 发表评论
  • 评论内容:
  •  
Copyright © zaowei21
Powered by CSDN Blog