WEB开发网
开发学院软件开发VC WinSock学习笔记(2) 阅读

WinSock学习笔记(2)

 2010-05-25 20:36:41 来源:WEB开发网   
核心提示:8、获取套接字的本地地址结构:intgetsockname(SOCKET s, struct sockaddr FAR * name, int FAR * namelen );s为套接字name为函数调用后获得的地址值namelen为缓冲区的大小,9、获取与套接字相连的端地址结构:int getpeername(SOC

8、获取套接字的本地地址结构:

int getsockname(SOCKET s, struct sockaddr FAR * name, int FAR * namelen );
s为套接字
name为函数调用后获得的地址值
namelen为缓冲区的大小。

9、获取与套接字相连的端地址结构:

int getpeername(SOCKET s, struct sockaddr FAR * name, int FAR * namelen );
s为套接字
name为函数调用后获得的端地址值
namelen为缓冲区的大小。

10、获取计算机名:

int gethostname( char FAR * name, int namelen );
   name是存放计算机名的缓冲区
   namelen是缓冲区的大小
   用法:
   char szName[255];
   memset(szName,0,255);
   if(gethostname(szName,255)==SOCKET_ERROR)
   {
       //错误处理
   }
   返回值为:szNmae="xiaojin"

11、根据计算机名获取主机地址:

struct hostent FAR * gethostbyname( const char FAR * name );
   name为计算机名。
   用法:
   hostent * host;
   char* ip;
   host= gethostbyname("xiaojin");
   if(host->h_addr_list[0])
   {
     struct in_addr addr;
     memmove(&addr, host->h_addr_list[0],4);
     //获得标准IP地址
     ip=inet_ ntoa (addr);
   }
   返回值为:hostent->h_name="xiaojin"
     hostent->h_addrtype=2  //AF_INET
     hostent->length=4
     ip="127.0.0.1"

Winsock 的I/O操作:

1、 两种I/O模式

阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。

非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。

为了解决这个问题,提出了进行I/O操作的一些I/O模型,下面介绍最常见的三种:

上一页  1 2 3 4 5  下一页

Tags:WinSock 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接