首页 > 代码库 > 【windows socket+UDPserverclient】
【windows socket+UDPserverclient】
Windows Socket+UDPserverclient
Winsock是 Windows下套接字标准。
1.UDP socket编程:
UDP(用户数据报协议)是一个无连接。不可靠的传输数据,其特点是简单,快捷。相比与TCP,UDP不须要建立连接(不需connect、accept函数),数据发送接收之后,不须要终止连接。基于UDP的程序,避免了TCP执行的开销,在效率与速度上具有更好的表现。
UDP是无连接的,可能会有数据的丢失,延迟。这些须要应用程序自己处理。
2.UDP基本函数:
创建socket:
SOCKET socket (int af, int type, int protocol);
第一个參数af: 表示族地址。网络编程一般使用AF_INET宏。
第二个參数type: 表示连接类型,TCP可选面向连接SOCK_STREAM。UDP数据报SOCK_DGRAM。
第三个參数protocol: 表示协议,在使用AF_INET族地址UDP连接,设为IPPROTO_UDP。
绑定socket:
int bind(SOCKET s, const struct sockaddr *saddr,int namelen);
第一个參数: 须要绑定的socket。
第二个參数: 相应AF_INET,使用struct sockaddr_in包括协议。IP,port等信息。
第三个參数: 相应AF_INET,使用struct sockaddr_in结构大小。
该函数将socket与协议,IP地址。Portport号绑定起来。相对于给socket“命名”唯一的标识。这样其它的进程就能够通过这个标识找到这个socket。
发送数据:
int sendto(SOCKET s, const char *buf, int len,
int flags, const struct sockaddr *to, int tolen);
第一个參数: socket为对方的socket。
第二个參数: 发送数据的缓冲区。
第三个參数: 数据缓冲区大小。
第四个參数: 紧急状态,一般这为0。
第五个參数: 可选。相应AF_INET,对方IP。port等socket地址标识sockaddr_in。
第六个參数: 可选,相应AF_INET,使用sockaddr_in结构大小。
该函数用于UDP发送数据。
接收数据:
int recvfrom(SOCKET s, char *buf, int len,
int flags, struct sockaddr *from, int *fromlen );
第一个參数: socket为对方的socket。
第二个參数: 接收数据的缓冲区。
第三个參数: 数据缓冲区大小。
第四个參数: 紧急状态。一般这为0。
第五个參数: 可选。相应AF_INET。返回对方IP。port等socket地址标识sockaddr_in。
第六个參数: 可选,相应AF_INET,使用sockaddr_in结构大小。
该函数用于UDP接收数据。
绑定socket:
int bind(SOCKET s, const struct sockaddr *saddr,int namelen);
第一个參数: 须要绑定的socket。
第二个參数: 相应AF_INET,使用struct sockaddr_in包括协议,IP,port等信息。
第三个參数: 相应AF_INET。使用struct sockaddr_in结构大小。
该函数将socket与协议,IP,port号绑定起来,相对于给socket“命名”唯一的标识。这样其它的进程就能够通过这个标识找到这个socket。
关闭套接字:
int closesocket(SOCKET s);
參数为socket。
该函数用于关闭套接字。
3.牛刀小试:
先在VC6.0执行server程序,再打开一个VC6.0执行client程序:
UDPseverserver等待来自client的信息。收到信息后打印出来,然后向client发送如今的时间。
UDPclient客户端向server发送一个“Hello,server!”信息,然后接收来自server的时间信息并打印,反复三次。
执行效果:
UDPclient程序:
<script src="https://code.csdn.net/snippets/336401.js" type="text/javascript"></script>
UDPserver程序:
<script src="https://code.csdn.net/snippets/336405.js" type="text/javascript"></script>
【windows socket+UDPserverclient】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。