UDP编程中client和server中使用recvfrom和sendto的区别
client中:
sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)&saddr,len);
recvfrom(sfd,buf,sizeof(buf),0,NULL,NULL);
server中:
recvfrom(fd,buf,sizeof(buf),0,(struct sockaddr *)&caddr,&len);
将网络字节序的IP地址转换成字符串输出
// inet_ntoa : struct ip -> char *ip
char *paddr = NULL;
paddr = inet_ntoa(caddr.sin_addr);
printf("client[%s] say:%s\n",paddr,buf);
sendto(fd,buf,strlen(buf),0,(struct sockaddr *)&caddr,len);
struct sockaddr_in saddr;
socklen_t len = sizeof(saddr);
sendto最后两个参数是(struct sockaddr *)&saddr【 saddr 是自己 新建的sockaddr_in型的变量】,
len【len 是socklen_t型的变量 其值为sizeof(saddr)】在client和server的编程中相似。
recvfrom在client编程中,最后两个参数应设置为空。但在server编程时,recvfrom的最后两个参数是(struct sockeaddr *)&caddr和&len。通过inet_ntoa可以将网络字节序的地址转换为字符串型的,这样可增强应用性能,比如:打印。
【注】 sendto函数中使用的是strlen,而recvfrom函数使用的是sizeof。
UDP编程中client和server中使用recvfrom和sendto的区别的更多相关文章
- iOS 中client和server的 Web Service 网络通信 (1)
当你打开你手机上新浪微博应用或者知乎应用是.你是否会去想这些显示在手机上的图片和数据时从哪里来的?又是通过如何的方法实现的?好.那么接下来就介绍是如何实现的.过程又是怎么样的. 当我们浏览着 ...
- iOS 中client和server的 Web Service 网络通信 (2)
在实际的应用开发过程中,同步请求的用户体验并非非常好:我们都知道.Apple是非常重视用户体验的.这一点也成为了行业的标杆,没实用户哪里来的好产品.所以用户体验是极其重要的.貌似废话有点多.接下来进入 ...
- springboot中关闭eureka server中已注册服务列表自我保护配置
配置集群服务可以向eureka通知应用是否可以使用a.在eureka server的application.properties中加入:# 设为false,关闭自我保护eureka.server.en ...
- windows下socket编程实现client和server双向通信
服务端代码server.c // server.cpp : Defines the entry point for the console application. // #include <s ...
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...
- UDP编程中的connect
标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来发数据,最近看到ntpclient的代码里面是使用send函数直接法的,就分析了一下,原来udp发送数据有两种方法供大家选用 ...
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6633311 在上一篇文章中,我 们分析了And ...
- Fms3中client端与server端交互方式汇总
系列文章导航 Flex,Fms3相关文章索引 Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象) Fms3和Flex打造在线视频录制和回放 Fms3和 ...
- VMwarevSphere Client 链接 vCenter Server中的主机,开启虚拟机提示:在主机当前连接状况下不允许执行该操作
VMwarevSphere Client 链接 vCenter Server中的主机,开启虚拟机提示:在主机当前连接状况下不允许执行该操作很多原因都可以导致该问题出现,例如 vCenter Serve ...
随机推荐
- PHP 图片处理PNG颜色丢失
根据需求做一个用户点击测试桃花运的小程序.在开发中需要使用PHP进行开发,原理是将用户的姓名通过php的图片处理写入图片中,此处遇到一巨坑. 就是png图片在调用 imagecolorallocate ...
- gitlab配置邮件通知功能操作记录
之前已经介绍了gitlab的部署http://www.cnblogs.com/kevingrace/p/5651402.html但是没有配置邮箱通知功能,今天这里介绍下gitlab安装后的邮箱配置操作 ...
- jquery无缝间歇向上滚动(间断滚动)
jquery无缝间歇向上滚动 JS部份 $(function(){ var $this = $(".renav"); var scrollTimer; $this.hover(fu ...
- iOS多线程杂论
iOS多线程的分布 (1) NSThread (2) NSOperation (3) GCD 现在对下面三个进行一个个的分析,希望那里说得不对的地方希望简友们帮我指点一二. 1,NSThread 优点 ...
- PAT 1010. 一元多项式求导 (25)
设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与 ...
- Method not found: '!!0[] System.Array.Empty()'.
错误原因:程序里面没有可调用的方法(程序使用的是 .NET Framework 4.6,但是你自己的系统里面使用的不是 4.6版本) 解决方法:1.安装window sp1 ,下载地址是:https ...
- CentOS 7下的 Mysql 主从配置
最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...
- ubuntu14.04禁用guest用户登录
打开终端(ctrl+alt+t) sudo echo -e "[SeatDefaults]\nallow-guest=false" > /usr/share/lightd ...
- Java 基础【09】 日期类型
java api中日期类型的继承关系 java.lang.Object --java.util.Date --java.sql.Date --java.sql.Time --java.sql.Time ...
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
(一)前 言 最近一个月使用VS2012(默认框架是.net f ...