设计协议通讯示例物业
民生法规 2021-08-24 18:33 字号: 大 中 小
一、绪言
UDP是一种面向非连接,不可靠的通讯协议,相对于TCP来说,虽然可靠性不及,但传输效率较高。所以在络上仍有很大的用途。这几日需要了解下udp通讯的过程,上发现这方面的资料还挺少。于是仔细的翻找了下msdn,基本上搞清楚了udp通讯的过程。做了一个测试的例子。希望对大家有帮助。
二、UDP的通讯过程
server端: open a socket(socket)---gt;name the socket(bind)---send and receive data(sendto recvfrom)---close socket(closesocket)
client端: open a socket(socket)----------------------------send and receive data(sendto recvfrom)---close socket(closesocket)
server端无需listen,client端无需connect,因此udp中server和client的区别相对较模糊。只要调用sendto和recvfrom就可以给指定的地址收发数据,但并不保证收发的数据的完整性和可靠性。
三、示例
udpserver主要代码:
void main()
{
SOCKET socket1;
InitWinsock();
struct sockaddr_in local;
struct sockaddr_in from;
int fromlen =sizeof(from);
n_family=AF_INET;
n_port=htons(1000); ///监听端口
n_addr.s_addr=INADDR_ANY; ///本机
socket1=socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(struct sockaddr*)local,sizeof local);
while (1)
{
char buffer[1024]=\"\\0\";
printf(\"waiting for message from others-------------\\n\");
if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*)from,fromlen)!=SOCKET_ERROR)
{
printf(\"Received datagram from %s--%s\\n\",inet_ntoa(n_addr),buffer);
////给cilent发信息
sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)from,fromlen);
}
Sleep(500);
}
closesocket(socket1);
}
udpcilent主要代码:
void main()
{
SOCKET socket1;
InitWinsock();
struct sockaddr_in server;
int len =sizeof(server);
n_family=AF_INET;
n_port=htons(1000); ///server的监听端口
n_addr.s_addr=inet_addr(\"168.168.0.10\"); ///server的地址
socket1=socket(AF_INET,SOCK_DGRAM,0);
while (1)
{
char buffer[1024]=\"\\0\";
printf(\"input message\\n\");
scanf(\"%s\",buffer);
if (strcmp(buffer,\"bye\")==0)
break;
if (sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)server,len)!=SOCKET_ERROR)
{
在Apple接班后 if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*)server,len) != SOCKET_ERROR)
printf(\"rece from server:%s\\n\",buffer);
}
}
closesocket(socket1);
}
四、结束语
UDP通讯比TCP简单了很多,在数据可靠性不是很高的情况下,有使用的价值。查看本文来源
石家庄看白癜风专业医院西安哪里治疗妇科好
缓解痛经的方法有哪些
-
-
逍遥智能门锁火了智能窗会成为下一个行业爆点么
智能门锁火了,智能窗会成为下一个行业爆点么?门窗对于家庭...
2020-09-30 | 民生法规
-
-
恩惠冠军赛傅园慧仰创世界最佳张雨霏余贺新各添
冠军赛傅园慧仰创世界最佳 张雨霏余贺新各添金傅园慧激情庆...
2020-09-16 | 民生法规
-
-
传闻意媒米兰前锋巴卡冬歇期可能加盟巴黎搭配
【传闻】意媒:米兰前锋巴卡冬歇期可能加盟巴黎意大利媒体...
2020-05-31 | 民生法规
-
-
科维亚特签约法拉利鱼雷与维特尔成队友搭配
科维亚特签约法拉利 “鱼雷”与维特尔成队友丹尼尔-科维亚...
2020-05-29 | 民生法规
-
-
扬言要揍麦迪的男人他是詹皇的第一带刀侍卫搭配
扬言要揍麦迪的男人 他是詹皇的第一带刀侍卫扬言要揍麦迪的...
2020-05-29 | 民生法规
-
-
花边性感小精再展颓废风全裸上身太大胆图搭配
花边|性感小精再展颓废风!全裸上身太大胆(图)颓废性感 ...
2020-05-27 | 民生法规