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

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

  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();

点击数:65

暂无评论

发送评论 编辑评论


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