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

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

点击数:21

0

0 Comments

发表评论

EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00