Windows网络编程总结
本文最后更新于1388天前,其中的信息可能已经有所发展或是发生改变。

一、面向连接协议与面向非连接协议简谈

  1. 面向连接协议

两台计算机进行数据收发前,必须在两者间建立通信信道,数据传输完毕,信道切断。这个方式叫做面向连接协议,跟打电话很想。

给女朋友打电话,需要先拨号建立通信,打电话就是数据传输,打完电话,要挂电话就是信道切断。面向连接协议使用的是TCP协议

2.面向非连接协议

发送端只需要发送数据,不需理会接收端是否接收。接收端只需要接收数据,不需响应发送端他收到数据。这种方式叫做面向非连接协议,跟写信很像,讲写好的信放到信箱,无法确保收信人能收到这封信。面向非连接协议采用的是UDP协议。

3.相应的函数

//面向连接协议

//服务器端

socket()->bind()->listen()->accept()->send()/recv()->closesocket()

//客户端

socket()->connet()->send/recv()->closesocket()

//面向非连接协议

//服务器端

socket()->bind()->sendto/recvfrom()->closesocket()

//客户端

socket()->sendto/recvfrom()->closefrom()

二、网络编程基础知识

win网络编程需要使用Winsock相关函数,所以必须先初始化Winsock库,使用完成后必须释放Winsock库。

  1. Winsock库的初始化和释放

//Winsock库初始化

int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData) //第一个参数为Winsock版本号 目前常用版本号为2.2 第二个参数为一个指向WSADARA的指针

//Winsock库释放

int WSACleanup (void)

//初始化与释放Winsock库 代码示例

WORD wVersionRequested;

WSADATA wsaData;

int err; wVersionRequested = MAKEWORD(2,2);

err =WSAStartup(wVersionRequested,&wsaData);

if(err!=0)

{

return -1;

}

if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2)

{

WSACleanup();

return -1;

}

// ...

WSACleanup();

点击数:74

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇