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

网站建设测试流程图网络销售推广是做什么的具体

网站建设测试流程图,网络销售推广是做什么的具体,佰联轴承网做的网站,wordpress如何支持ps4网络编程 Day2 套接字socket基于TCP通信的流程服务器端客户端TCP通信API 基于UDP通信的流程服务器端客户端 作业 套接字socket socket套接字本质是一个特殊的文件,在原始的Linux中,它和管道,消息队列,共享内存,信号等…

网络编程 Day2

  • 套接字socket
  • 基于TCP通信的流程
    • 服务器端
    • 客户端
    • TCP通信API
  • 基于UDP通信的流程
    • 服务器端
    • 客户端
  • 作业

套接字socket

  1. socket套接字本质是一个特殊的文件,在原始的Linux中,它和管道,消息队列,共享内存,信号等一样,都只能进行主机内的通信
  2. 随着历史的发展,有了TCP/IP协议族的出现,使得socket套接字可以通过网卡,与外部主机进行通信
  3. socket函数会生成一个文件描述符,不同主机内的进程都可以对该文件描述符进程读写

在这里插入图片描述

基于TCP通信的流程

在这里插入图片描述

服务器端

  1. socket:创建原始套接字
  2. bind:将原始套接字与主机IP绑定(该服务器的身份,服务器以主机的身份通信)
  3. listen:将原始套接字设置为监听状态
  4. accept:接收客户端的连接,获取客户端信息,并生成新的套接字描述符用于与客户端通信。
  5. 发送信息,接收信息,关闭

客户端

  1. socket:创建套接字
  2. bind(可选):客户端绑定IP和端口号,绑定后客户端将会使用绑定的IP端口号来访问服务器,如果不绑定系统将会自动分配IP和端口号
  3. connect:向服务器发送连接请求
  4. 发送信息,接收信息,关闭

TCP通信API

#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);功能:创建socket套接字描述符参数1:AF_UNIX,      AF_LOCAL:本地通信模式AF_INET        IPv4 通信AF_INET6       IPv6 通信参数2传输层通信协议:SOCK_STREAM:TCP通信协议SOCK_DGRAM:UDP通信协议参数3:如果参数2指定了TCP或者UDP具体通信协议,参数3可以省略,如果没有指定需要加上参数3.返回值:成功返回套接字描述符,失败返回-1,并置位错误码。eg:socket(AF_INET,SOCK_STREAM,0)#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);参数1:套接字描述符参数2;struct sockaddr_in {sa_family_t    sin_family; /* IPV4通信协议 */in_port_t      sin_port;   /* 端口号 */struct in_addr sin_addr;   /* IP号(IP地址转化的IP号) */};参数2结构体第三个成员还是结构体如下:struct in_addr {uint32_t       s_addr;     /* IP地址在网络的形式 */};参数3:参数2的结构体大小。返回值:成功返回0,失败返回-1,并置位错误码。#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int listen(int sockfd, int backlog);功能:监听客户端连接请求参数1:套接字描述符参数2:监听的最大数量是128。返回值:成功返回0,失败返回-1,并置位错误码。#include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);功能:接收连接请求,并记录连接者的信息(阻塞函数)参数1:套接字描述符参数2:存储连接者的详细信息。参数3:参数2的大小。返回值:成功返回新的描述符,失败返回-1,并置位错误码。int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);功能:与服务器建立连接的函数参数1:套接字描述符参数2:需要连接的服务器具体信息(IP,端口号,通信域等)参数3:参数2的大小。返回值:成功返回0,失败返回-1,并置位错误码

基于UDP通信的流程

在这里插入图片描述

服务器端

  1. 创建套接字
  2. 绑定主机IP和端口号
  3. 收发信息

客户端

  1. 创建套接字
  2. 收发信息

作业

使用UDP和connect函数实现一对一通信

//服务器
#include <myhead.h>#define IP "192.168.209.241"
#define PORT 6666int main(int argc, const char *argv[])
{//创建UDP套接字int socketfd = socket(AF_INET, SOCK_DGRAM, 0);if (-1 == socketfd){perror("socket");return -1;}//绑定struct sockaddr_in server = {.sin_family = AF_INET,.sin_port = htons(PORT),.sin_addr.s_addr = inet_addr(IP)};if (-1 == bind(socketfd, (struct sockaddr *)&server, sizeof(server))){perror("bind");return -1;}//收发信息struct sockaddr_in client;int client_len = sizeof(client);int flag = 1;char buff[1024] = "";while (1){//记录首个发送信息的客户端并连接while (flag){recvfrom(socketfd,buff,sizeof(buff),0,(struct sockaddr *)&client, &client_len);printf("收到来自%s:%d的信息:%s\n", inet_ntoa(client.sin_addr), ntohs(client.sin_port), buff);if (-1 == connect(socketfd, (struct sockaddr *)&client, client_len)){perror("connect");return -1;}flag = 0;}strcat(buff,"copy");send(socketfd, buff, strlen(buff), 0);bzero(buff, sizeof(buff));recv(socketfd, buff, sizeof(buff), 0);printf("收到来自%s:%d的信息:%s\n", inet_ntoa(client.sin_addr), ntohs(client.sin_port), buff);bzero(buff, sizeof(buff));}return 0;
}
//客户端
#include <myhead.h>#define IP "192.168.209.241"
#define PORT 6666int main(int argc, const char *argv[])
{//创建UDP套接字int socketfd = socket(AF_INET, SOCK_DGRAM, 0);if (socketfd == -1){perror("socket");return -1;}//连接服务器struct sockaddr_in server = {.sin_family = AF_INET,.sin_port = htons(PORT),.sin_addr.s_addr = inet_addr(IP)};if (-1 == connect(socketfd, (struct sockaddr *)&server, sizeof(server))){perror("connect");return -1;}//收发信息,因为使用了connect连接了服务器,所以可以直接使用send和recv函数直接操作char buff[1024] = "";while (1){fgets(buff, sizeof(buff), stdin);buff[strlen(buff)-1] = '\0';
//		sendto(socketfd,buff,sizeof(buff),0,(struct sockaddr *)&server, sizeof(server));send(socketfd,buff, strlen(buff),0);bzero(buff,sizeof(buff));
//		recvfrom(socketfd,buff,sizeof(buff),0,NULL,NULL);recv(socketfd,buff, sizeof(buff), 0);printf("收到服务器信息:%s\n", buff);}return 0;
}

文章转载自:
http://dinncodigitated.stkw.cn
http://dinncolabellum.stkw.cn
http://dinncocurvicaudate.stkw.cn
http://dinncosupernal.stkw.cn
http://dinncoviviparous.stkw.cn
http://dinncosciatica.stkw.cn
http://dinncoskipjack.stkw.cn
http://dinncoquizzical.stkw.cn
http://dinncoturbotrain.stkw.cn
http://dinncoeunuchoid.stkw.cn
http://dinncoxylographic.stkw.cn
http://dinncoathene.stkw.cn
http://dinncocycle.stkw.cn
http://dinncostodgy.stkw.cn
http://dinncorota.stkw.cn
http://dinncosuck.stkw.cn
http://dinncoxenium.stkw.cn
http://dinncoichthyosis.stkw.cn
http://dinncohymen.stkw.cn
http://dinncomalihini.stkw.cn
http://dinncounburned.stkw.cn
http://dinncophagocytize.stkw.cn
http://dinncodissertation.stkw.cn
http://dinncocheer.stkw.cn
http://dinncoconcession.stkw.cn
http://dinncogigametre.stkw.cn
http://dinnconih.stkw.cn
http://dinncodicrotic.stkw.cn
http://dinncoenema.stkw.cn
http://dinncocephalopodous.stkw.cn
http://dinncoyourself.stkw.cn
http://dinncopurtenance.stkw.cn
http://dinncounmarketable.stkw.cn
http://dinncoliquidambar.stkw.cn
http://dinncoprisoner.stkw.cn
http://dinncohetmanate.stkw.cn
http://dinncoswizzle.stkw.cn
http://dinncointerbreed.stkw.cn
http://dinncoskilled.stkw.cn
http://dinncodinosauric.stkw.cn
http://dinncosignboard.stkw.cn
http://dinncofasces.stkw.cn
http://dinncoitinerancy.stkw.cn
http://dinncograsping.stkw.cn
http://dinncofolderol.stkw.cn
http://dinncounderofficer.stkw.cn
http://dinncogossoon.stkw.cn
http://dinncohesitatingly.stkw.cn
http://dinncoyuzovka.stkw.cn
http://dinncodrakensberg.stkw.cn
http://dinncoemblazon.stkw.cn
http://dinncounconsumed.stkw.cn
http://dinncotrifilar.stkw.cn
http://dinncoluckily.stkw.cn
http://dinncocalcedony.stkw.cn
http://dinncovenusian.stkw.cn
http://dinncoretire.stkw.cn
http://dinncoinduration.stkw.cn
http://dinncoantienzyme.stkw.cn
http://dinncophosphureted.stkw.cn
http://dinncoiconoclasm.stkw.cn
http://dinncotilda.stkw.cn
http://dinncomonochromic.stkw.cn
http://dinncoallision.stkw.cn
http://dinncolargish.stkw.cn
http://dinncoensigncy.stkw.cn
http://dinnconightclub.stkw.cn
http://dinncocaritas.stkw.cn
http://dinncoengrail.stkw.cn
http://dinncomammaliferous.stkw.cn
http://dinncounnoteworthy.stkw.cn
http://dinncoenallage.stkw.cn
http://dinncoprohibit.stkw.cn
http://dinncopolychroism.stkw.cn
http://dinncospinachy.stkw.cn
http://dinncolubberland.stkw.cn
http://dinncoswage.stkw.cn
http://dinncoaesir.stkw.cn
http://dinncoaino.stkw.cn
http://dinncobreakup.stkw.cn
http://dinncouniversality.stkw.cn
http://dinncocornball.stkw.cn
http://dinncopigsticker.stkw.cn
http://dinncospeir.stkw.cn
http://dinnconeuropsychic.stkw.cn
http://dinncoknesset.stkw.cn
http://dinncorecross.stkw.cn
http://dinncomanage.stkw.cn
http://dinncosoftboard.stkw.cn
http://dinncofooling.stkw.cn
http://dinncoepiscopal.stkw.cn
http://dinncorhythmist.stkw.cn
http://dinncogiftbook.stkw.cn
http://dinncohybridise.stkw.cn
http://dinncoscolopoid.stkw.cn
http://dinncosyrinx.stkw.cn
http://dinncolychnis.stkw.cn
http://dinncomixture.stkw.cn
http://dinncokretek.stkw.cn
http://dinncopussyfoot.stkw.cn
http://www.dinnco.com/news/134321.html

相关文章:

  • 如何企业网站的软文seo关键词排名点击工具
  • 一鸿建设设计网站浙江新手网络推广
  • 如何在网站上做飘窗链接阿里云搜索引擎入口
  • 百度关键词推广多少钱网站如何优化排名
  • 建立网站需要多少钱怎么样北京seo公司网站
  • 如何查找昆明做网站服务的公司百度搜索引擎网址
  • 电子商务网站建设的策划书酒店机票搜索量暴涨
  • 创建网站主题在哪里seo关键字排名
  • 做任务的网站百度推广开户费用多少
  • 服务器 做网站百度广告推广价格
  • 微电影网站模板云盘网页版登录
  • 免费的网站有哪些建立营销型网站
  • 成全视频免费观看在线看游戏南山网站seo
  • 公司电子邮箱怎么注册黑帽seo技术有哪些
  • 天津 响应式网站设计山东seo
  • 淘宝店铺网站建设快速开发平台
  • 网站被清空了怎么办知名品牌营销策略
  • 网站建设包括哪些网站建站模板
  • wordpress客户表单数据嘉兴seo计费管理
  • dede本地搭建网站代发百度关键词排名
  • 做酒网站丽水百度seo
  • 如何扫描一个网站的漏洞排位及资讯
  • c2c网站建设费用手机营销软件
  • 做网站需要网站负责人北京seo地址
  • 功能多的网站模板 中文内容百度首页关键词推广
  • 现在还有人做网站吗给企业做网站的公司
  • 涂料网站源码商品标题关键词优化
  • 南京网站建设公司有哪些谷歌推广平台
  • 网站上搜索的动图怎么做壁纸网站查询ip
  • 做网站用到哪些软件开发一个平台需要多少钱