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

抚州市企业网站建设网站建设和app制作

抚州市企业网站建设,网站建设和app制作,宜宾金农投资建设集团网站,网站建设项目规划书TCP编程流程 socket()创建套接字#xff0c;套接字TCP协议选择流式服务SOCK_STREAM。 bind()指定套接字使用的IP地址和端口。IP地址是自己主机地址#xff0c;端口为一个16位的整形值。 listen()方法创建监听队列。监听队列分为存放未完成三次握手的连接和完成三次握手的连…TCP编程流程 socket()创建套接字套接字TCP协议选择流式服务SOCK_STREAM。 bind()指定套接字使用的IP地址和端口。IP地址是自己主机地址端口为一个16位的整形值。 listen()方法创建监听队列。监听队列分为存放未完成三次握手的连接和完成三次握手的连接。其第二个参数位指定已完成三次握手队列的长度。 accept()处理存放在listen创建的已完成三次握手的队列中的连接如果队列为空可能阻塞。 connect()有客户端程序执行建立连接进行三次握手指定连接的服务器IP地址和端口。 send()向TCP连接的对端发送数据。 recv()用接收TCP连接的对端发送来的数据返回值为0说明对方已经关闭连接。 close()关闭TCP连接。 TCP有关概念 TCP协议面向连接的可靠的流式服务。传输层 TCP三次握手建立连接四次挥手断开连接。 TCP 的可靠传输是通过使用应答确认和超时重传来完成 可靠性牺牲一定开销应答确认、超时重传、去重序号相同的丢弃、乱序重排。 滑动窗口流量控制控制发送的数据量太慢效率低太快缓冲区满 粘包连续send()时recv()的次数比send()少无法准确分割出发送方要表达的意义。 解决告诉大小设置特殊符号分割不连续send 字节序列大端、小端 大端网络字节序列整形必须转成大端 #include netinet/in.h uint32_t htonl(uint32_t hostlong); // 长整型的主机字节序转网络字节序 uint32_t ntohl(uint32_t netlong); // 长整型的网络字节序转主机字节序 uint16_t htons(uint16_t hostshort); // 短整形的主机字节序转网络字节序 uint16_t ntohs(uint16_t netshort); // 短整型的网络字节序转主机字节序TCP服务端代码多线程并发 服务端接受一个客户端的连接后创建一个线程或者进程然后在新创建的线程或进程中循环处理数据。主线程父进程只负责监听客户端的连接并使用 accept()接受连接,不进行数据的处理。 #include stdio.h #include stdlib.h #include unistd.h #include string.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h #include pthread.h//多线程并发 struct Node_Arg {int c; };void* fun(void *arg) {struct Node_Arg* p (struct Node_Arg*)arg;int c p-c;while( 1 ){char buff[128] {0};int num recv(c,buff,127,0);if ( num 0 ){break;}printf(buff(c%d)%s\n,c,buff);send(c,ok,2,0);}close(c);free(p);printf(client close\n); } int main() {int sockfd socket(AF_INET,SOCK_STREAM,0);//创建套接字if ( sockfd -1){exit(1);}struct sockaddr_in saddr,caddr;//服务器地址、客户端地址memset(saddr,0,sizeof(saddr));//清空服务器地址saddr.sin_family AF_INET;//地址簇saddr.sin_port htons(6000); //htons 将主机字节序转换为网络字节序 1024 知名端口 4096保留 临时端口saddr.sin_addr.s_addr inet_addr(127.0.0.1);int res bind(sockfd,(struct sockaddr*)saddr,sizeof(saddr));//绑定端口、ip地址if ( res -1){printf(bind err\n);exit(1);}res listen(sockfd,5);if ( res -1){exit(1);}while( 1 ){int len sizeof(caddr);int c accept(sockfd,(struct sockaddr*)caddr,len);//阻塞if ( c 0 ){continue;}printf(c%d\n,c);pthread_t id;struct Node_Arg * ptr (struct Node_Arg*)malloc(sizeof(struct Node_Arg));ptr-c c;pthread_create(id,NULL,fun,ptr);//创建线程}close(sockfd);exit(0); } TCP客户端代码 #include stdio.h #include unistd.h #include stdlib.h #include string.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h int main() {// 创建套接字int sockfd socket(AF_INET, SOCK_STREAM, 0); // SOCK_STREAM是tcp的if (sockfd -1)exit(1);struct sockaddr_in saddr; // 服务器地址memset(saddr, 0, sizeof(saddr)); // 清空有一个占位的saddr.sin_family AF_INET; // 地址族,告诉它用的什么协议ipv4,ipv6saddr.sin_port htons(6000); // 端口进程代号htons短整形的主机字节序转网络字节序// 设置服务器地址saddr.sin_addr.s_addr inet_addr(127.0.0.1);//哪个主机// 连接服务器int res connect(sockfd, (struct sockaddr *)saddr, sizeof(saddr));if (res -1){printf(connect err\n);exit(1);};while (1){printf(input:\n);char buff[128] {0};fgets(buff, 128, stdin);if (strncmp(buff, end, 3) 0)break;send(sockfd, buff, strlen(buff), 0);//发送到发送缓冲区memset(buff, 0, sizeof(buff)); // 清空//接受数据recv(sockfd, buff, 127, 0);//看接收缓冲区全双工printf(buff %s\n, buff);}close(sockfd);exit(0); }
http://www.tj-hxxt.cn/news/216512.html

相关文章:

  • 目前网站开发的主流语言是什么明星百度指数排行
  • 做暧嗳网站wordpress 首页 菜单
  • 微舍 微网站 怎么做博物馆设计网站推荐
  • 永州做网站tuantaogoudw做网站视频教程
  • 重庆网站开发哪家专业网站建设服务包括什么
  • 公司网站如何做水印jsp网站开发标准
  • 县级林业网站建设管理铁岭市网站建设
  • 怎样做办公用品销售网站产品vi设计
  • 做区域县城招聘网站网站推广排名优化多少钱
  • 搅拌机东莞网站建设技术支持做淘宝客没网站怎么做
  • 中国建设行业信息网站专业做婚庆的网站
  • 中国制药网网站开发技术德州市建设街小学网站首页
  • 国外做测评的网站大连承揽营销型网站公司
  • 怎么才能在百度搜到自己的网站家乡网站怎么做
  • 湖北省建设教育协会网站首页黄冈网站推广软件视频下载
  • 医生做学分在哪个网站在运营中seo是什么意思
  • 做网站4核是什么意思wordpress幻灯片的调用
  • 洛阳有做网站开发的吗服装定制官网
  • 上饶做网站的套模版做的网站好优化吗
  • 如何对新开网站做收录网站开发的项目总结
  • 平顶山河南网站建设公总号开发就是网站开发吗
  • 网站要懂代码互联网品牌有哪些
  • 建设五证在那个网站可以查长春网站建设网
  • 做全国家电维修网站到哪里做网站seo服务商
  • 轻量应用服务器做网站动画制作培训学院
  • 摄影网站源码html网页基本结构
  • 做qq群头像网站海丰县网站设计
  • 安平县外贸网站建设360公司官网首页
  • 品牌营销型网站建设公司线上调研问卷在哪个网站上做
  • 西安微商城网站建设wordpress 百度优化 插件