`

WinSock API 常用函数

阅读更多
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgId" content="Word.Document"> <meta name="Generator" content="Microsoft Word 11"> <meta name="Originator" content="Microsoft Word 11"> <link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CJACKY_%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> <link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CJACKY_%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--><!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="1028"/> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]-->

WinSock API 常用函数

WinSocks提供了许多嵌接字函数,他们并不代表协议的某一个层次,其实质就是一组网络编程接口,用户利用这些函数就能很容易地进行编程了。

1 accept函数

语法

<!--[if gte vml 1]><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe"> <v:stroke joinstyle="miter"/> <v:path gradientshapeok="t" o:connecttype="rect"/> </v:shapetype><v:shape id="_x0000_s1026" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:0;margin-top:31.2pt;width:414pt;height:93.6pt; z-index:1;mso-position-horizontal-relative:text; mso-position-vertical-relative:text' fillcolor="silver"> <v:textbox style='mso-next-textbox:#_x0000_s1026'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><span lang=EN-US>SOCKET accept(</span></p> <p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'> </span>SOCKRT s,</span></p> <p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'> </span>Strucct sockaddr FAR* addr,</span></p> <p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'> </span>int FAR* addrlen</span></p> <p class=MsoNormal><span lang=EN-US>);</span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> <w:wrap type="square"/> </v:shape><![endif]--><!--[if !vml]-->文本框: SOCKET accept(
   SOCKRT s,
   Strucct sockaddr FAR* addr,
   int FAR* addrlen
);<!--[endif]-->

s:是一个套接字,它应处于监听状态

addr: 是一个sockaddr_in结构指针,包含一株客户端的端口号、IP地址等信息

addrlen:用于接手参数addr的长度。

返回值:一个新的嵌接字,它对应于已经接受的客户端连接,对于该客户端的所有后续操作,都应使用这个新的套接字。

2 bind函数

语法


<!--[if gte vml 1]><v:shape id="_x0000_s1027" type="#_x0000_t202" style='position:absolute;left:0; text-align:left;margin-left:0;margin-top:30.15pt;width:414pt;height:84.75pt; text-indent:0;z-index:2;mso-position-horizontal:absolute; mso-position-horizontal-relative:text;mso-position-vertical:absolute; mso-position-vertical-relative:text' fillcolor="silver"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><span lang=EN-US>int bind</span><span style='font-family: 宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>(</span></p> <p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'></span>SOCKET s,</span></p> <p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'> </span>Const struct sockaddr FAR* name,</span></p> <p class=MsoNormal><span lang=EN-US><span style='mso-spacerun:yes'> </span>Int namelen</span></p> <p class=MsoNormal><span lang=EN-US>);</span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> <w:wrap type="square"/> </v:shape><![endif]--><!--[if !vml]-->文本框: int bind(
   SOCKET s,
   Const struct sockaddr FAR* name,
   Int namelen
);<!--[endif]-->




s: 是一个套接字。

name: 是一个sockaddr结构指针,该结构中包含了要结合的地址和端口号。

namelen:确定name缓冲区的长度。

返回值:如果函数执行成功,返回值为0,否则为SOCKET_ERROR

在定义一个套接字后,需要调用bind函数为其指定本机地址、协议和端口号。

分享到:
评论

相关推荐

    Winsock_API_基本函数

    ### Winsock API 基本函数详解 #### 一、概述 Winsock API(Windows Socket Application Programming Interface)是微软为Windows平台开发的一组用于网络通信的API集合。它基于BSD sockets API进行了扩展,并且提供...

    第8章 Winsock API_old

    本章主要介绍Winsock API中的一些核心函数,包括字节排序、IP地址转换、网络信息获取、套接字选项设置、I/O操作、事件对象管理以及错误处理等关键功能。 8.1 字节排序函数 字节排序函数主要用于解决不同计算机平台...

    基于Visual C++的Winsock API研究

    Winsock API 1.1版本是较为常用的一个版本,它提供了两个主要的编程模型:阻塞模式和非阻塞模式。阻塞模式下,一个函数调用会直到操作完成才返回。非阻塞模式允许应用程序同时执行其他操作,但编程复杂度较高。 在...

    VC++的Winsock API研究

    - **wsock32.lib**:这是Winsock API的链接库文件,必须将它添加到项目的链接器设置中,以便能够正确地链接到Winsock的API函数。 - **winsock.h**:这是一个头文件,包含了Winsock API的所有声明,需要在程序的开头...

    Windows API常用函数使用说明

    ### Windows API常用函数使用说明 #### 一、概述 Windows API(Application Programming Interface)是微软提供的应用程序编程接口,用于开发Windows平台的应用程序。它提供了一系列的功能函数,允许开发者访问...

    pb常用API函数教材

    9. **网络通信**:虽然PB自身不直接支持网络编程,但可以通过API函数如`Winsock`控件来实现TCP/IP通信,进行客户端-服务器的网络应用开发。 10. **调试和性能优化**:`Trace()`和`TraceOn()`等函数用于调试,而`...

    window常用的API函数

    本文将详细介绍一些常用的Windows API函数,帮助开发者快速理解和应用。 首先,我们来看消息相关的API函数: 1. **BroadcastSystemMessage**:这个函数用于将一条系统消息发送到系统中的所有顶级窗口。这在需要...

    WINSOCKAPI网络编程入门[定义].pdf

    Winsock支持多种网络协议,但最常用的是TCP/IP协议,提供了传输控制协议(TCP)和用户数据报协议(UDP)两种主要的通信方式。 **3. 使用WINSOCK API编程** 在VC++环境中,WINSOCK API编程涉及以下步骤: - **包含...

    VB API 函数使用手册

    《VB API函数使用手册》是一份详尽的资源,涵盖了大约774个Windows API函数,这些函数被精心地划分为十二大类别,旨在为VB(Visual Basic)开发者提供全面的函数参考。API(Application Programming Interface)是...

    windows API函数大全

    Windows API(应用程序编程接口)是微软为开发者提供的一组接口函数,用于构建在Windows操作...通过阅读如"VC__API函数分类大全.doc"、"C#常用函数列表.doc"等文档,可以深入理解每个函数的用途和用法,提升编程能力。

    精通WindowsAPI函数

    4. **内存管理**:`VirtualAlloc`和`VirtualFree`用于动态分配和释放内存,`GlobalAlloc`和`LocalAlloc`则是早期Windows程序常用的内存分配函数。了解内存管理函数可以帮助避免内存泄漏和提高程序效率。 5. **文件...

    Windows API常用技巧汇编

    《Windows API常用技巧汇编》是一本专注于Windows操作系统编程技术的资源集合,它可能包含了光盘形式的视频讲座,旨在帮助开发者深入理解和掌握Windows API的使用。Windows API是微软为开发者提供的一个接口,通过...

    Windows api函数大全

    6. **网络通信**:Windows API也支持网络编程,如`WSAStartup`初始化Winsock,`socket`创建套接字,`bind`绑定套接字到本地地址,`connect`或`accept`用于连接和接受连接,`send`和`recv`发送和接收数据。...

    VB使用WinSock API点对点聊天实例

    VB6.0使用WinSock API点对点聊天程序实例,VB聊天源码,API.bas中有大家常用的网络聊天API,比如清理内存中一些东西、定义一个连接(正确的叫法是:套接字)、关闭套接字、把端口和套接字绑定在一起、监听,如果你写...

    SDK 常用API函数库

    在这个“SDK常用API函数库”中,我们重点关注的是VC(Visual C++)环境下使用的API函数库。VC SDK为Windows平台上的C++开发者提供了丰富的功能,涵盖了系统调用、图形绘制、网络通信等多个方面。 首先,API...

    几百个常用的 API 函数的简介

    网络编程中,Winsock库提供了大量的API函数,如socket用于创建套接字,bind将套接字与IP地址和端口绑定,connect实现客户端连接到服务器,listen和accept处理服务器端的连接请求。send和recv函数用于发送和接收数据...

    《windows API 常用技巧汇编》程序实例源码

    9. **网络编程**:Windows API提供了Winsock库,包含套接字编程所需的功能,如socket、bind、listen、accept和send等,可用于创建网络通信应用。 10. **错误处理**:所有API调用都有可能失败,GetLastError和...

    winsock实现TCP聊天程序

    在Winsock中,我们需要先调用`WSAStartup`函数初始化Winsock库,然后创建一个套接字,使用`connect`函数与服务器建立连接。接着,客户端可以使用`send`函数发送数据,而`recv`函数用于接收服务器返回的信息。当通信...

Global site tag (gtag.js) - Google Analytics