WEB开发网
开发学院软件开发VC Windows Sockets 网络编程(三) —— WINDOWS SOCK... 阅读

Windows Sockets 网络编程(三) —— WINDOWS SOCKETS 1.1 程序设计

 2006-07-21 11:09:26 来源:WEB开发网   
核心提示: 4、出错处理WINDOWS SOCKETS 为了和以后多线程环境(WINDOWS/UNIX)兼容,它提供了两个出错处理函数来获取和设置当前线程的最近错误号,Windows Sockets 网络编程(三) —— WINDOWS SOCKETS 1.1 程序设计(3),(WSAGetLastE

4、出错处理

WINDOWS SOCKETS 为了和以后多线程环境(WINDOWS/UNIX)兼容,它提供了两个出错处理函数来获取和设置当前线程的最近错误号。(WSAGetLastEror()和WSASetLastError())

5、启动与终止

使用函数 WSAStartup() 和 WSACleanup() 启动和终止套接字。

三、WINDOWS SOCKETS 网络程序设计核心

我们终于可以开始真正的 WINDOWS SOCKETS 网络程序设计了。不过我们还是先看一看每个 WINDOWS SOCKETS 网络程序都要涉及的内容。让我们一步步慢慢走。

1、启动与终止

在所有 WINDOWS SOCKETS 函数中,只有启动函数 WSAStartup() 和终止函数 WSACleanup() 是必须使用的。

启动函数必须是第一个使用的函数,而且它允许指定 WINDOWS SOCKETS API 的版本,并获得 SOCKETS的特定的一些技术细节。本结构如下: int PASCAL FAR WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);其中 wVersionRequested 保证 SOCKETS 可正常运行的 DLL 版本,如果不支持,则返回错误信息。

我们看一下下面这段代码,看一下如何进行 WSAStartup() 的调用 WORD wVersionRequested;// 定义版本信息变量
  WSADATA wsaData;//定义数据信息变量
  int err;//定义错误号变量
  wVersionRequested = MAKEWORD(1,1);//给版本信息赋值
  err = WSAStartup(wVersionRequested, &wsaData);//给错误信息赋值
  if(err!=0)
  {
    return;//告诉用户找不到合适的版本
  }
  //确认 WINDOWS SOCKETS DLL 支持 1.1 版本
  //DLL 版本可以高于 1.1
  //系统返回的版本号始终是最低要求的 1.1,即应用程序与DLL 中可支持的最低版本号
  if(LOBYTE(wsaData.wVersion)!= 1|| HIBYTE(wsaData.wVersion)!=1)
  {
    WSACleanup();//告诉用户找不到合适的版本
    return;
  }
  //WINDOWS SOCKETS DLL 被进程接受,可以进入下一步操作
关闭函数使用时,任何打开并已连接的 SOCK_STREAM 套接字被复位,但那些已由 closesocket() 函数关闭的但仍有未发送数据的套接字不受影响,未发送的数据仍将被发送。程序运行时可能会多次调用 WSAStartuo() 函数,但必须保证每次调用时的 wVersionRequested 的值是相同的。

上一页  1 2 3 4  下一页

Tags:Windows Sockets 网络编程

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