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

深圳罗湖网站建设公司哪家好/网络推广赚钱项目

深圳罗湖网站建设公司哪家好,网络推广赚钱项目,系统门户网站建设详细功能,教学网站系统流程图目录 一、TCP基本概念 二、ser服务器代码 三、cil客户端代码 一、TCP基本概念 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。以下是TCP的一些基本概念: 面向连接&…

目录

一、TCP基本概念

二、ser服务器代码

三、cil客户端代码 


一、TCP基本概念

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。以下是TCP的一些基本概念:

  1. 面向连接:在数据传输之前,TCP在发送方和接收方之间建立一个连接。数据传输完成后,连接被释放。

  2. 可靠性:TCP提供可靠的数据传输,确保数据按照正确的顺序到达目的地,并且可以检测和纠正传输过程中出现的错误。

  3. 流控制:TCP使用滑动窗口协议进行流量控制,以确保发送端和接收端之间的数据传输速率合理,不会发生数据丢失或超负荷的情况。

  4. 拥塞控制:TCP通过控制数据包的发送速率来避免网络拥塞,以确保网络的稳定性和流畅性。

  5. 分段和重组:TCP在传输数据时会将数据分成较小的数据段进行传输,接收方收到数据后会重新组装成完整的数据。

  6. 端到端通信:TCP是端到端通信协议,意味着通信双方直接进行数据传输,而不需要经过中间设备的处理。

服务端:

1. socket():创建一个新的套接字。
2. bind(ip+port):将套接字绑定到指定的IP地址和端口号上,以便监听来自该地址和端口的连接请求。
3. listen():使套接字进入监听状态,等待客户端的连接请求。
4. accept():接受客户端的连接请求,建立连接。
5. recv():接收来自客户端的数据。
6. send():向客户端发送数据。
7. close():关闭套接字,结束通信。

客户端:

1. socket():创建一个新的套接字。
2. connect(ip+port):向服务端的指定IP地址和端口号发起连接请求。
3. send():向服务端发送数据。
4. recv():接收来自服务端的数据。
5. close():关闭套接字,结束通信。

二、ser服务器代码

TCP服务器程序,用于接受客户端的连接请求,并与客户端进行数据交换 。

#include<stdio.h>
#include<stdlib.h>
#include<unistd.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);if(sockfd==-1){exit(1);}struct sockaddr_in saddr,caddr;//服务器的ip端口memset(&saddr,0,sizeof(saddr));//清空saddr.sin_family=AF_INET;//填充saddr.sin_port=htons(6000);//制定端口号为6000    小于1024是知名端口,1024~4096是保留的端口,4096以上是临时端口saddr.sin_addr.s_addr=inet_addr("127.0.0.1");//指定ip+端口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);//accept接受连接,如果没人连接,则阻塞int c=accept(sockfd,(struct sockaddr*)&caddr,&len);if(c<0){break;}printf("accept c=%d\n",c);pid_t pid=fork();if(pid==0){while(1){char buff[128]={0};int n=recv(c,buff,127,0);//接受连接,接收数据,会阻塞,也可以换成read()if(n<=0){break;}printf("recv:%s\n",buff);send(c,"ok",2,0);//发送数据,也可以换成write()}printf("client close\n");close(c);exit(0);}close(c);}
}
  1. 导入头文件:程序中导入了一些标准的头文件,包括stdio.h、stdlib.h、unistd.h、string.h、sys/socket.h、netinet/in.h、arpa/inet.h。

  2. 创建套接字:使用socket函数创建一个套接字,同样指定协议族(AF_INET,表示IPv4)、套接字类型(SOCK_STREAM,表示TCP流套接字)和协议参数(0)。

  3. 设置服务器地址:定义了两个结构体变量saddr和caddr,分别表示服务器和客户端地址。初始化saddr,并指定服务器的IP地址为"127.0.0.1",端口号为6000。

  4. 绑定地址:使用bind函数将套接字和服务器地址绑定在一起,指定服务器应用程序使用的IP地址和端口号。

  5. 监听连接:使用listen函数监听连接请求,指定最大连接数为5。

  6. 接受连接:通过accept函数接受客户端的连接请求。如果有客户端连接,则创建一个新的套接字描述符c,并接受连接。

  7. 多进程处理:在子进程中处理客户端的数据通信。在处理数据的循环中,接收客户端发送的数据,如果接收到数据则打印并发送"ok"回复客户端。如果接收到的数据长度小于等于0,表示客户端关闭连接,则跳出处理数据的循环,关闭客户端的套接字描述符c。

  8. 多进程处理:在父进程中关闭已接受的客户端连接。

三、cil客户端代码 

客户端程序,用于连接到服务器并进行数据交换。

#include<stdio.h>
#include<stdlib.h>
#include<unistd.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);if(sockfd==-1){exit(1);}struct  sockaddr_in saddr;//指定服务器的ip和端口portmemset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.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);}char buff[128]={0};printf("input:\n");fgets(buff,128,stdin);send(sockfd,buff,strlen(buff)-1,0);//可以用writememset(buff,0,sizeof(buff));recv(sockfd,buff,127,0);printf("buff=%s\n",buff);close(sockfd);exit(0);
}
  1. 导入头文件:程序中导入了一些标准的头文件,包括stdio.h、stdlib.h、unistd.h、string.h、sys/socket.h、netinet/in.h、arpa/inet.h。

  2. 创建套接字:使用socket函数创建一个套接字,同样指定协议族(AF_INET,表示IPv4)、套接字类型(SOCK_STREAM,表示TCP流套接字)和协议参数(0)。

  3. 设置服务器地址:定义了一个结构体变量saddr,表示服务器地址。初始化saddr,并指定服务器的IP地址为"127.0.0.1",端口号为6000。

  4. 连接服务器:使用connect函数连接服务器,将套接字和服务器地址绑定在一起,连接到指定的服务器IP和端口。

  5. 发送和接收数据:提示用户输入数据,通过fgets函数读取用户输入的数据到缓冲区buff中。然后使用send函数将数据发送给服务器,发送的数据长度为输入长度减去换行符。接收服务器返回的数据,使用recv函数将数据读取到buff中。

  6. 打印数据:将接收到的数据打印输出。

  7. 关闭连接:使用close函数关闭套接字,结束客户端程序。

运行结果:

http://www.whsansanxincailiao.cn/news/32028906.html

相关文章:

  • 梁建国设计公司官网/电脑系统优化软件
  • 茶业网站设计方案/正规网络公司关键词排名优化
  • 网盘资源/北京seo公司公司
  • 服装网站建设进度及实施过程/推广产品的方式有哪些
  • 免费 网站 服务器/网络营销整合推广
  • 同一家公司可以做几个网站吗/成功的网络营销案例及分析
  • 畅销营销型网站建设电话/温州seo外包公司
  • 西安手机网站开发/如何制作一个自己的网页
  • 区政府网站建设管理计划/免费浏览网站推广
  • 网站制作费计入什么科目/推广策划方案模板
  • 成都中方互动做网站怎样/google 推广优化
  • 住建设部官方网站/深圳网站推广
  • 三网合一网站怎么做/深圳今日头条新闻
  • 为网站做外链的文章/2023知名品牌营销案例100例
  • 涟水县住房和城乡建设局网站/怎么做好网络营销
  • 别墅设计图纸及效果图大全/汕头seo网站推广
  • 阜城网站建设代理/贵阳网站建设
  • 做请帖网站/搜狗链接提交入口
  • 企业网站被转做非法用途/济南网站优化公司哪家好
  • 唐山网站建设哪家好/长春网站优化
  • 做网站 用哪个网盘好/杭州网站seo价格
  • 网站外推和优化/凡科建站和华为云哪个好
  • 谷歌官方建站服务/b站推广2023
  • 做网站的为什么一直拖/网站建站系统
  • python和java做网站/seo综合查询什么意思
  • 新鸿儒网站建设/广告推广方案怎么写
  • 泉州网站制作哪个好薇/seo顾问服务 品达优化
  • 幼儿园学校网站建设作用/百度账号购买网站
  • 烟台专门做网站的/营销推广公司
  • 焦作百姓网免费发布信息/公司以优化为理由裁员合法吗