我是在BCB6下写的程序,不一定通用.最近才开始学习.
使用STRING:
1 引用<string>不带H.</string>
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#速度快一些.
分享到:
相关推荐
本面试笔记旨在为C++开发者提供一份全面的复习指南,帮助他们在面试中脱颖而出,成功迈进大厂的大门。 首先,深入理解C++的基础知识是至关重要的。这包括基本语法、数据类型、运算符、控制结构(如if语句和循环)、...
"TCP_UDP_Socket学习笔记.md" 文件很可能会详细阐述这些概念,包括如何创建和使用Socket对象,如何处理连接和数据传输,以及在实际应用中的注意事项。此外,笔记可能还会包含实例代码,帮助初学者更好地理解和实践...
这份"C++软件开发工程师面试学习笔记"涵盖了C++程序员进阶大厂所必须了解的关键知识点,包括但不限于C++面试常见问题、设计模式、数据结构、操作系统原理以及网络编程等内容。 1. **C++面试常见问题**: - 内存...
标题中的“JILU笔记.zip”表明这是一份与学习或工作记录相关的压缩文件,而“日常记录笔记,保存资源用”进一步确认了这是一份用于存储日常学习或工作经验的文档集合。根据给出的标签“C/C++ JAVA”,我们可以推测这...
这个压缩包“javase笔记.7z”显然包含了关于JavaSE的学习笔记,可能包括了核心概念、语法、API使用等内容。下面我们将深入探讨JavaSE的一些关键知识点。 一、Java语言基础 1. **语法结构**:Java是一种静态类型的、...
读书笔记:C++&&Java socket网络编程 学习socket 案例快速入手
以上就是Java编程涉及的一些核心知识点,这份"java笔记.rar"可能涵盖了这些内容的详细解释和示例代码,对于学习和巩固Java技能大有裨益。通过深入学习和实践,你可以成为一名熟练的Java开发者。
Socket编程是计算机网络通信中的重要概念,特别是在C++这样的编程语言中,它是构建客户端-服务器应用的基础。本主题主要关注如何使用C++实现基于Socket的聊天程序,涉及到TCP和UDP两种传输协议。 首先,让我们理解...
### Visual C++学习笔记知识点详解 #### 1. Win32API详解 Win32API是微软为其32位平台提供的应用程序编程接口(Application Programming Interface),适用于所有基于Win32平台运行的应用程序。通过调用Win32 API中...
C++通过标准库如`<sys/socket.h>`,`<netinet/in.h>`等,提供了对socket接口的封装,用于创建套接字、绑定、监听、接受连接和发送/接收数据。 4. **异步I/O**:对于高并发场景,传统的阻塞I/O模型效率低下。非阻塞I...
在"嵌入式Linux应用开发学习笔记.zip"这个压缩包中,我们可以预见到包含了一系列有关这一主题的学习资料,比如代码示例、教程文档或者项目实践。其中的"Embedded-Linux-master"可能是一个项目的源代码库,下面我们将...
以上是Python学习笔记中涉及的一些核心概念和用法,这只是Python编程的一个初步介绍,实际Python语言还包括更多如函数、模块、面向对象编程、异常处理、文件操作、正则表达式等内容。深入学习Python,可以更好地利用...
在PyQt5中实现这样的系统,需要理解如何使用Python的socket库或第三方库(如smtplib、poplib、imaplib)来与邮件服务器交互。 3. 视频播放器:视频播放器的开发涉及到多媒体处理、解码、帧同步、播放控制等多个技术...
Java语法简洁且严谨,与C++相比,它去除了指针、内存管理等复杂特性,降低了程序出错的可能性。Java的一大亮点在于其跨平台性,通过Java虚拟机(JVM)实现“一次编写,到处运行”。此外,Java还具有良好的安全性,...
11. **Java的网络编程**:Java提供了丰富的网络编程API,如Socket、ServerSocket、URL、URLConnection等,用于实现客户端和服务器间的通信。 12. **JDBC(Java Database Connectivity)**:Java通过JDBC API与各种...
Java的语法与C++类似,但更简洁。它包括变量声明、数据类型(如整型、浮点型、字符型、布尔型等)、运算符(算术、关系、逻辑、位运算符等)、控制结构(如if-else、switch、for、while循环)和流程控制。 2. **类...
本篇笔记将深入探讨ACE库在C++网络编程中的应用和设计思路。 首先,我们来理解什么是ACE库。ACE是一个开源的C++框架,由Douglas C. Schmidt领导的团队开发,它提供了一组用于构建分布式和网络软件的可移植组件。ACE...
在提供的学习笔记和课件中,你可能还会学习到如何使用各种编程语言(如Java、C++或Python)实现Socket编程,以及如何调试和优化Socket程序。通过实践和理论结合,你将能够更好地理解和掌握Socket通信的核心原理和...
Java是一种广泛使用的高级编程语言,它的语法结构与C和C++相似,但更注重安全性和跨平台性。Java的核心理念是“一次编写,到处运行”,这意味着Java程序可以在任何支持Java虚拟机(JVM)的操作系统上运行。自1995年...