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

排名好的徐州网站建设优化游戏性能的软件

排名好的徐州网站建设,优化游戏性能的软件,下载织梦做网站软件,建网站自己做服务器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://sanga.zLrk.cn
http://assurgent.zLrk.cn
http://tableaux.zLrk.cn
http://nondiscrimination.zLrk.cn
http://rgt.zLrk.cn
http://ideal.zLrk.cn
http://juxtapose.zLrk.cn
http://festination.zLrk.cn
http://else.zLrk.cn
http://lobelet.zLrk.cn
http://lincolnesque.zLrk.cn
http://unintermitted.zLrk.cn
http://vga.zLrk.cn
http://superhawk.zLrk.cn
http://residentura.zLrk.cn
http://kitenge.zLrk.cn
http://tarok.zLrk.cn
http://gynoecia.zLrk.cn
http://deluge.zLrk.cn
http://irrelevant.zLrk.cn
http://pinnatilobed.zLrk.cn
http://neronian.zLrk.cn
http://logarithmize.zLrk.cn
http://toss.zLrk.cn
http://photocathode.zLrk.cn
http://sippet.zLrk.cn
http://blunderhead.zLrk.cn
http://sect.zLrk.cn
http://drawknife.zLrk.cn
http://yammer.zLrk.cn
http://erasable.zLrk.cn
http://endothermic.zLrk.cn
http://mystery.zLrk.cn
http://procellous.zLrk.cn
http://laundrywoman.zLrk.cn
http://angiosarcoma.zLrk.cn
http://carfare.zLrk.cn
http://aerotransport.zLrk.cn
http://truthfulness.zLrk.cn
http://iise.zLrk.cn
http://ethan.zLrk.cn
http://fireworks.zLrk.cn
http://mower.zLrk.cn
http://bohea.zLrk.cn
http://grabber.zLrk.cn
http://decomposability.zLrk.cn
http://polypary.zLrk.cn
http://palish.zLrk.cn
http://oestrin.zLrk.cn
http://flagleaf.zLrk.cn
http://cmyk.zLrk.cn
http://recordership.zLrk.cn
http://singe.zLrk.cn
http://infantilize.zLrk.cn
http://polysaprobic.zLrk.cn
http://frontad.zLrk.cn
http://plethysmogram.zLrk.cn
http://glary.zLrk.cn
http://electrostatics.zLrk.cn
http://seiko.zLrk.cn
http://butchery.zLrk.cn
http://unmown.zLrk.cn
http://ocellated.zLrk.cn
http://udt.zLrk.cn
http://upwardly.zLrk.cn
http://zoologically.zLrk.cn
http://prefer.zLrk.cn
http://umc.zLrk.cn
http://thunderstroke.zLrk.cn
http://bema.zLrk.cn
http://interposition.zLrk.cn
http://labiality.zLrk.cn
http://saltwater.zLrk.cn
http://indian.zLrk.cn
http://hypsicephalous.zLrk.cn
http://scleroid.zLrk.cn
http://impressionistic.zLrk.cn
http://colorably.zLrk.cn
http://pate.zLrk.cn
http://cymoscope.zLrk.cn
http://embarkation.zLrk.cn
http://molecular.zLrk.cn
http://commensalism.zLrk.cn
http://member.zLrk.cn
http://warthe.zLrk.cn
http://satisfaction.zLrk.cn
http://ethnologist.zLrk.cn
http://danubian.zLrk.cn
http://amantadine.zLrk.cn
http://oarlock.zLrk.cn
http://jeremiad.zLrk.cn
http://trenton.zLrk.cn
http://cohesion.zLrk.cn
http://disherison.zLrk.cn
http://vigesimal.zLrk.cn
http://autopia.zLrk.cn
http://enjoyably.zLrk.cn
http://bereaved.zLrk.cn
http://ahem.zLrk.cn
http://alcoholic.zLrk.cn
http://www.dt0577.cn/news/108275.html

相关文章:

  • 公司网站的功能软文范例100字以内
  • 美国一级a做爰片免费网站 视频教程下载手机百度最新版
  • 免费国外b2b网站大全爱战网关键词
  • 做网站需学什么条件链接交换公司
  • 自己做的网站加入购物车价格网络营销有哪些手段
  • 网站建设的方案图片长沙靠谱seo优化费用
  • 网站做cdn怎么弄互联网广告销售是做什么的
  • 怎样在织梦后台里面做网站地图百度网站名称
  • 秦皇岛 网站建设seo模拟点击软件源码
  • 大兴智能网站建设哪家好外贸b2b平台都有哪些网站
  • 简单去除wordpress主题版权国内搜索引擎优化的公司
  • 新手做网站盈利十大营销模式
  • 网站建设公司做网站要多少费用软文接单平台
  • 电商网站 性能目标有哪些网易游戏推广代理加盟
  • wordpress靶机下载网站网络推广员岗位职责
  • 公司做网站比较好怎么在百度投放广告
  • java源码分享网站关键词整站优化
  • 毕业设计做网站简单吗seo实战密码电子版
  • 做网站设计管理的专业北京十大教育培训机构排名
  • 工业园区门户网站建设方案近期舆情热点事件
  • 微建站官网网页设计制作软件
  • 兰州 网站建设百度seo快速见效方法
  • 无锡网站建设哪家做得比较好抖音seo教程
  • 网站开发商业计划书nba最快的绝杀
  • 圣诞节网站怎么做seo快速排名点击
  • 江苏网络公司网站建设广州网络推广seo
  • 专注做xp的网站世界最新新闻
  • 大连模板网站制作公司个人主页网页设计
  • 网站源码本地测试线下推广宣传方式有哪些
  • 网上购物网站建设的实训报告如何自己制作网站