当前位置: 首页 > wzjs >正文

烟台制作网站的公司简介怎么样在百度上推广自己的产品

烟台制作网站的公司简介,怎么样在百度上推广自己的产品,网站建设制作设计营销公司四川,做网站的难题udp是无连接的,没有listen 与 accept。 bind 服务端一定需要bind,告知别人自己的ip和port。 客户端可以不bind,在发送数据时候可以随机分配,客户端推荐bind(与tcp不同,udp本身无连接)。 注意&am…

 udp是无连接的,没有listen 与 accept。

bind

服务端一定需要bind,告知别人自己的ip和port。

客户端可以不bind,在发送数据时候可以随机分配,客户端推荐bind(与tcp不同,udp本身无连接)。

注意:

  • 服务端当中另一个进程已经用tcp bind了 8080,该进程还可以使用udp bind 8080,tcp 与 udp没有关系。

udp只能使用sendto

sendto携带ip

如果客户端没有bind,那么只能由客户端sendto

udp接收消息只能使用recvfrom

可以获取发送方的ip和port

udp 中的close

由于无连接,另一端无影响(另一端不知道对方断开连接)。

如果一端已经close了,对面继续sendto,消息丢失不重传,可以在应用层实现可靠性。

如果一端已经close了,对面继续recvfrom,一直阻塞。

udp 和 tcp 的区别

udp 不可靠,无连接,消息有边界

tcp 可靠,有连接,是一种流式协议,消息无边界

使用udp实现即时聊天

尽管传输层没有建立连接,但是我们在应用层实现了。在做聊天之前,需要客户端先发一条消息给服务端,让服务端知道客户端的ip 和 port。

退出时可以利用recvfrom的返回值,在udp中,如果recvfrom的返回值为0,说明是空包,对面已经退出,此时本方可以退出。

代码实现

server_udp.c

#include <my_header.h>
#define BUFSIZE 4096
/* Usage:  */
int main(int argc, char *argv[]){                                  ARGS_CHECK(argc,3);int sockfd = socket(AF_INET,SOCK_DGRAM,0);struct sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_addr.s_addr = inet_addr(argv[1]);addr.sin_port = htons(atoi(argv[2]));int ret = bind(sockfd,(struct sockaddr*)&addr,sizeof(addr));ERROR_CHECK(ret,-1,"bind");char buf[BUFSIZE];struct sockaddr_in clientAddr;socklen_t clientAddrlen = sizeof(clientAddr);recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr*)&clientAddr,&clientAddrlen);printf("client connected! ip = %s, port = %d, [buf] %s\n",inet_ntoa(clientAddr.sin_addr),htons(clientAddr.sin_port),buf);fd_set fd;while(1){FD_ZERO(&fd);FD_SET(STDIN_FILENO,&fd);FD_SET(sockfd,&fd);select(sockfd+1,&fd,NULL,NULL,NULL);if(FD_ISSET(sockfd,&fd)){bzero(buf,sizeof(buf));ssize_t sret = recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr*)&clientAddr,&clientAddrlen);if(sret == 0){printf("client disconnected\n");break;}printf("[buf] %s\n",buf);}if(FD_ISSET(STDIN_FILENO,&fd)){bzero(buf,sizeof(buf));ssize_t sret = read(STDIN_FILENO,buf,sizeof(buf));if(sret == 0){printf("server disconnected\n");sendto(sockfd,buf,0,0,(struct sockaddr*)&clientAddr,clientAddrlen);break;}sendto(sockfd,buf,strlen(buf),0,(struct sockaddr*)&clientAddr,clientAddrlen);}}close(sockfd);return 0;
}

client_udp.c

#include <my_header.h>
#define BUFSIZE 4096
/* Usage:  */
int main(int argc, char *argv[]){                                  ARGS_CHECK(argc,3);int sockfd = socket(AF_INET,SOCK_DGRAM,0);struct sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_addr.s_addr = inet_addr(argv[1]);addr.sin_port = htons(atoi(argv[2])); socklen_t serverlen = sizeof(addr);sendto(sockfd,"nihao",5,0,(struct sockaddr *)&addr,sizeof(addr));char buf[BUFSIZE];fd_set fd;while(1){FD_ZERO(&fd);FD_SET(STDIN_FILENO,&fd);FD_SET(sockfd,&fd);select(sockfd+1,&fd,NULL,NULL,NULL);if(FD_ISSET(sockfd,&fd)){bzero(buf,sizeof(buf));ssize_t sret = recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr*)&addr,&serverlen);if(sret == 0){printf("server disconnected\n");break;}printf("[buf] %s\n",buf);}if(FD_ISSET(STDIN_FILENO,&fd)){bzero(buf,sizeof(buf));ssize_t sret = read(STDIN_FILENO,buf,sizeof(buf));if(sret == 0){printf("I will close connection\n");sendto(sockfd,buf,0,0,(struct sockaddr*)&addr,sizeof(addr));break;}sendto(sockfd,buf,strlen(buf),0,(struct sockaddr*)&addr,sizeof(addr));}}close(sockfd);return 0;
}

服务端回复消息,服务端先recvfrom获取ip和ort,随后就可以sendto回去了。

对比tcp与udp来说,tcp操作更简单。但是udp的性能更好,在音视频等领域应用更广。

http://www.dtcms.com/wzjs/111579.html

相关文章:

  • 上海建设网站做网站怎么做
  • wordpress 动态生成页论坛seo教程
  • 南京江北新区包括哪些地方seo百度排名优化
  • 购买b2c网站湘潭网站设计外包公司
  • 天猫淘宝优惠券网站怎么做宁波百度快照优化排名
  • 成都建设网站制作培训方案
  • wed网站开发是什么上海牛巨微seo优化
  • 中国网站建设公司有哪些网络营销有什么方式
  • 徐州网站运营百度店铺免费入驻
  • 成都兼职做网站广州百度推广外包
  • 成都建设招标网站首页超级外链在线发布
  • 西安免费做网站价格网络营销策略案例
  • 代做视频的网站好磁力王
  • 新乡辉县网站建设优化营商环境个人心得
  • 自己如何做独立网站郑州seo服务
  • 深圳龙岗做网站潍坊百度关键词优化
  • 青羊区网站设计深圳网
  • 在线观看免费网站最佳搜索引擎磁力
  • 设计与制作网站营销推广软文案例
  • 广州最发达的五个区优化方法
  • 茂名网站制作网页怎么免费建公司网站
  • 如何做网站赚钱免费正能量erp软件下载
  • 同ip网站过多是空间的原因还是域名的原因百度权重是怎么来的
  • 保定网站建设百度客服人工电话
  • 广告网站素材免费发布信息网站大全
  • 营销型科技网站建设百度网盘私人资源链接
  • 林芝网站建设谷歌浏览器官网下载
  • 北京黄村专业网站建设价钱地推任务网
  • 珠海企业网站建设价格北京网站提升排名
  • 公司部门解散保定seo网站推广