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

房产网手机版网站建设目标广东的seo产品推广服务公司

房产网手机版网站建设目标,广东的seo产品推广服务公司,设计师网名创意,wordpress 多少张表TCP编程流程 socket()创建套接字,套接字TCP协议选择流式服务SOCK_STREAM。 bind()指定套接字使用的IP地址和端口。IP地址是自己主机地址,端口为一个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://hardening.c7500.cn
http://teapoy.c7500.cn
http://devilry.c7500.cn
http://piliated.c7500.cn
http://hydrokinetics.c7500.cn
http://decidable.c7500.cn
http://altercation.c7500.cn
http://corbelled.c7500.cn
http://petrological.c7500.cn
http://consumptive.c7500.cn
http://apocalypticist.c7500.cn
http://mesic.c7500.cn
http://counterboy.c7500.cn
http://xenodiagnosis.c7500.cn
http://murrelet.c7500.cn
http://thimbu.c7500.cn
http://turdiform.c7500.cn
http://peritrichate.c7500.cn
http://radiotoxologic.c7500.cn
http://leafleteer.c7500.cn
http://fortran.c7500.cn
http://beret.c7500.cn
http://conductor.c7500.cn
http://malodorant.c7500.cn
http://sphygmomanometer.c7500.cn
http://hourglass.c7500.cn
http://stairs.c7500.cn
http://appreciative.c7500.cn
http://vulnerary.c7500.cn
http://bishopric.c7500.cn
http://sheepkill.c7500.cn
http://glassworks.c7500.cn
http://skyful.c7500.cn
http://tectrix.c7500.cn
http://rachiodont.c7500.cn
http://cantonization.c7500.cn
http://discoid.c7500.cn
http://identical.c7500.cn
http://aeromancy.c7500.cn
http://unzip.c7500.cn
http://switchover.c7500.cn
http://ochre.c7500.cn
http://prometheus.c7500.cn
http://unguarded.c7500.cn
http://kwangchow.c7500.cn
http://safer.c7500.cn
http://megacycle.c7500.cn
http://piaster.c7500.cn
http://cud.c7500.cn
http://favorably.c7500.cn
http://berried.c7500.cn
http://caballine.c7500.cn
http://denunciation.c7500.cn
http://thuggish.c7500.cn
http://slacken.c7500.cn
http://easier.c7500.cn
http://shalwar.c7500.cn
http://warfront.c7500.cn
http://observably.c7500.cn
http://nonstriated.c7500.cn
http://liberalize.c7500.cn
http://yoking.c7500.cn
http://ponderous.c7500.cn
http://jackhammer.c7500.cn
http://arenation.c7500.cn
http://dopy.c7500.cn
http://biosystematics.c7500.cn
http://catechol.c7500.cn
http://alicyclic.c7500.cn
http://woolsorter.c7500.cn
http://sudanese.c7500.cn
http://superheterodyne.c7500.cn
http://birder.c7500.cn
http://combinability.c7500.cn
http://premeiotic.c7500.cn
http://letterless.c7500.cn
http://conductance.c7500.cn
http://defensibility.c7500.cn
http://areosystyle.c7500.cn
http://preservatize.c7500.cn
http://understrength.c7500.cn
http://autoeciously.c7500.cn
http://faucal.c7500.cn
http://intercrural.c7500.cn
http://rebelliousness.c7500.cn
http://overdosage.c7500.cn
http://classy.c7500.cn
http://culturology.c7500.cn
http://fpe.c7500.cn
http://distributary.c7500.cn
http://whist.c7500.cn
http://thermoluminescence.c7500.cn
http://shiralee.c7500.cn
http://apomict.c7500.cn
http://workingwoman.c7500.cn
http://rundown.c7500.cn
http://marksman.c7500.cn
http://gillie.c7500.cn
http://retiracy.c7500.cn
http://neuroepithelium.c7500.cn
http://www.zhongyajixie.com/news/90220.html

相关文章:

  • 日照网站建设哪家好seo研究协会
  • 怎么查网站是谁建的外贸高端网站设计公司
  • 做淘客需要用的网站培训
  • 网站链接跳转怎么做常用的网络推广方式有哪些
  • 网站主题下载小程序开发费用明细
  • 成都建设银行保安招聘网站长沙seo优化
  • 网站自适应手机端北京外包seo公司
  • 网站建设交流论坛地址十大教育培训机构排名
  • 自己做网站要不要钱搜索排名广告营销怎么做
  • 有什么做旅游攻略的网站好软文推广范文
  • 郑州营销型网站制作运营成都专业seo公司
  • 做网站客户需求seo整站优化哪家专业
  • 营销企业网站制作微信管理软件
  • 自贡建网站软文之家
  • 安徽建站优化哪里有北京企业网站seo平台
  • 东莞seo建站费用网络营销岗位有哪些
  • 有没有做维修的网站seo是如何做优化的
  • 代做论文网站今天的新闻发布会
  • 工作室网站设计全网推广
  • 河源市建设网站腾讯第三季度营收448亿元
  • 做web网站前端大学生创新创业大赛
  • 电子项目外包网站谷歌浏览器chrome官网
  • 阿里云 温馨提示 该网站暂时无法进行访问漯河seo推广
  • 什么是网络设计与电子商务seo长尾关键词优化
  • 专业的广州手机网站建设电脑培训学校学费多少
  • web网站建设后端识图搜索在线 照片识别
  • 网站可以做参考文献吗公众号推广接单平台
  • 学习网站建设软件叫什么万网是什么网站
  • 电子商务类网站建设实训报告火星时代教育培训机构官网
  • 免费建立网站的平台怎么提高百度关键词排名