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

找公司做网站要注意什么问题展馆展厅设计

找公司做网站要注意什么问题,展馆展厅设计,网站建设的ci设计指的是什么,中国进出口贸易官网作业 1、将TCP的CS模型再敲一遍 服务器 #include <myhead.h> #define PORT 8888 #define IP "192.168.124.123" int main(int argc, const char *argv[]) {//创建套接字//绑定本机IP和端口号//监听客户端请求//接收客户端连接请求//收发消息//创建套接字int…

作业

1、将TCP的CS模型再敲一遍

服务器

#include <myhead.h>
#define PORT 8888
#define IP "192.168.124.123"
int main(int argc, const char *argv[])
{//创建套接字//绑定本机IP和端口号//监听客户端请求//接收客户端连接请求//收发消息//创建套接字int oldfd ;if((oldfd = socket(AF_INET,SOCK_STREAM,0))==-1) 	//创建套接字{perror("socket");return -1;}//端口号快速复用int n = 2;if(setsockopt(oldfd,SOL_SOCKET,SO_REUSEADDR,&n,sizeof(n))==-1){perror("setsockopt");return -1;}//绑定本机IP和端口号struct sockaddr_in server = {.sin_family = AF_INET,.sin_port = htons(PORT),.sin_addr.s_addr = inet_addr(IP)};if(bind(oldfd,(struct sockaddr *)&server,sizeof(server))==-1){perror("bind");return -1;}//监听客户端连接请求,client变量接收客户端信息struct sockaddr_in client;int client_len = sizeof(client);int newfd;if(newfd = accept(oldfd,(struct sockaddr *)&client,&client_len)==-1){perror("accept");return -1;}printf("%s:%d连接\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port));//收发消息char buff[1024];while(1){int res = recv(newfd,buff,sizeof(buff),0);if(res == 0){printf("客户端退出\n");break;}printf("收到消息:%s,收到消息的长度:%d\n",buff,res);strcat(buff,"霜雪");send(newfd,buff,sizeof(buff),0);bzero(buff,sizeof(buff));}close(newfd);close(oldfd);return 0;
}

客户端

#include <myhead.h>
#define IP "192.168.124.123"
#define SERPORT 9999
int main(int argc, const char *argv[])
{//1、创建套接字//2、绑定(不是必须绑定)//3、连接//4、收发消息int oldfd = socket(AF_INET,SOCK_STREAM,0);if(oldfd==-1){perror("socket");return -1;}
#if 0//绑定固定的IP和端口号(不是必须的)struct sockaddr_in client = {.sin_family  =AF_INET,.sin_port = htons(7899),//自定义端口号.sin_addr.s_addr = inet_addr("192.168.124.34")};if(bind(oldfd,(struct sockaddr *)&client,sizeof(client))==-1){perror("bind");return -1;}
#endif//连接服务器struct sockaddr_in server = {.sin_family  =AF_INET,.sin_port = htons(SERPORT),//注意端口号需要服务器端口.sin_addr.s_addr = inet_addr(IP)};if(connect(oldfd,(struct sockaddr *)&server,sizeof(server))==-1){perror("connect");return -1;}//收发消息char buff[1024];while(1){fgets(buff,sizeof(buff),stdin);buff[strlen(buff)-1] = '\0';send(oldfd,buff,sizeof(buff),0);if(strcmp(buff,"quit")==0)//退出客户端{break;}bzero(buff,sizeof(buff));recv(oldfd,buff,sizeof(buff),0);//阻塞接收服务器消息printf("服务器发来消息:%s\n",buff);}close(oldfd);return 0;
}

2、UDP服务器中,使用connect函数,实现唯一的客户端与服务器通话。

服务器

#include <myhead.h>
#define PORT 8888#define IP "192.168.124.123"int main(int argc, const char *argv[])
{//创建套接字int oldfd = socket(AF_INET,SOCK_DGRAM,0);if(oldfd == -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(bind (oldfd,(struct sockaddr *)&server,sizeof(server))==-1){perror("bind");return -1;}struct sockaddr_in client;int client_len = sizeof(client);char buff[1024];int flag = 0;while(1){recvfrom(oldfd,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(connect(oldfd,(struct sockaddr *)&client,sizeof(client))==-1){perror("connect");return -1;}while(1){int res = recvfrom(oldfd,buff,sizeof(buff),0,NULL,NULL);printf("%s\n",buff);strcat(buff,"周日还要上课,吴!!!!");sendto(oldfd,buff,sizeof(buff),0,NULL,0);bzero(buff,sizeof(buff));if(res == 0){printf("退出客户端\n");break;}}}return 0;
}

客户端

#include <myhead.h>
#define IP "192.168.124.123"
#define PORT 8888
int main(int argc, const char *argv[])
{//1、创建套接字int oldfd = socket(AF_INET,SOCK_DGRAM,0);if(oldfd==-1){perror("socket");return -1;}//2、收发消息struct sockaddr_in server = {.sin_family = AF_INET,.sin_port = htons(PORT),.sin_addr.s_addr = inet_addr(IP)};if(connect(oldfd,(struct sockaddr *)&server,sizeof(server))==-1){perror("connect");return -1;}	char buff[1024];while(1){fgets(buff,sizeof(buff),stdin);buff[strlen(buff)-1] = '\0';sendto(oldfd,buff,sizeof(buff),0,(struct sockaddr *)&server,sizeof(server));bzero(buff,sizeof(buff));recvfrom(oldfd,buff,sizeof(buff),0,NULL,NULL);printf("接收服务器信息:%s\n",buff);}return 0;
}

笔记整理

流程图

UDP服务器

1、创建套接字。

2、绑定本机IP和端口号。

3、收发消息,由于不知道对方是谁,对方也不知道您是谁,所以在发送时附带自己的信息,接收时接收对方信息。

UDP相关API

        #include <sys/types.h>

        #include <sys/socket.h>

                ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);

        功能:发送信息函数

        参数1:套接字

        参数2:发送的信息

        参数3:信息大小

        参数4: 0:阻塞接收

                        MSG_DONTWAIT:费阻塞接收

        参数5:填写发送目标的IP和端口号 参数6:参数5的大小。

        返回值:成功返回发送的字节个数,失败返回-1,并置位错误码。

        #include <sys/types.h>

        #include <sys/socket.h>

                ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);

        功能:接收信息函数

        参数1:套接字

        参数2:发送的信息

        参数3:信息大小

        参数4: 0:阻塞接收

                        MSG_DONTWAIT:费阻塞接收

        参数5:自动填充发信息的主机信息。

        返回值:成功返回发送的字节个数,失败返回-1,并置位错误码。

、UDP服务器

#include <myhead.h>
#define PORT 8888
#define IP "192.168.124.34"int main(int argc, const char *argv[])
{//1、创建UDP套接字int oldfd = socket(AF_INET,SOCK_DGRAM,0);if(oldfd==-1){perror("socket");return -1;}//2、绑定struct sockaddr_in server = {.sin_family = AF_INET,.sin_port = htons(PORT),.sin_addr .s_addr = inet_addr(IP)};if(bind(oldfd,(struct sockaddr *)&server,sizeof(server))==-1){perror("bind");return -1;}//收发消息struct sockaddr_in client;int client_len = sizeof(client);char buff[1024];while(1){//接收客户端消息时会将客户端信息写入clientrecvfrom(oldfd,buff,sizeof(buff),0,(struct sockaddr *)&client,&client_len);printf("收到%s:%d的消息:%s\n",inet_ntoa(client.sin_addr),ntohs(client.sin_port),buff);strcat(buff,"元旦不放假难受");sendto(oldfd,buff,sizeof(buff),0,(struct sockaddr *)&client,sizeof(client));//收到谁的信息就发给谁}return 0;
}

4、UDP客户端

1、创建套接字

2、收发消息

#include <myhead.h>
#define IP "192.168.124.34"
#define PORT 8888
int main(int argc, const char *argv[])
{//1、创建套接字int oldfd = socket(AF_INET,SOCK_DGRAM,0);if(oldfd==-1){perror("socket");return -1;}//2、收发消息struct sockaddr_in server = {.sin_family = AF_INET,.sin_port = htons(PORT),.sin_addr.s_addr = inet_addr(IP)};char buff[1024];while(1){fgets(buff,sizeof(buff),stdin);buff[strlen(buff)-1] = '\0';sendto(oldfd,buff,sizeof(buff),0,(struct sockaddr *)&server,sizeof(server));bzero(buff,sizeof(buff));recvfrom(oldfd,buff,sizeof(buff),0,NULL,NULL);printf("接收服务器信息:%s\n",buff);}return 0;
}

思维导图

http://www.yayakq.cn/news/975825/

相关文章:

  • 黄冈免费网站推广平台汇总建设一个网站的一般过程
  • 怎样做百度推广网站wordpress旅游网模板
  • 无锡网站设计 众wordpress 用户信息
  • 网站建网站建设网站做文案图片上什么网站
  • 网站数据库设置权限如何制作网站导航
  • 网站建设与维护教学课件wordpress更改发布的文章
  • 官方网站想反应问题不弄应该怎么做做网站哪家南京做网站
  • 郑州品牌网站建设医疗器械经营许可证
  • 大理中小企业网站建设域名如何指向网站
  • 公司网站制作与推广外包如何加工资
  • 微商城网站建设平台合同海洋公司做网站推广
  • 精致的个人网站wordpress 模版 psd
  • 如何做360网站的排名构建网站的步骤
  • 网站建设与管理教学视频教程做统计图的网站
  • 临沂品牌网站推广南城网站建设公司
  • 模板手机网站建设价格明细表2021国内军事新闻大事件
  • asp服装商城网站源码天津重型网站建设风格
  • HTML怎么做网站目录罗田住房和城乡建设局网站
  • 自己做的博客网站吗wordpress 小程序下载
  • 织梦做网站要多长时间网站建设相关优化
  • 做视频网站可以自学吗网站建设合同服务范围
  • 如何自己建网站企业网站我要做个网站该怎么做
  • 网站数据没有更新网站栏目建设需求的通知
  • 我想做个网站怎么做 找谁做好网站编程入门教程
  • 生物学特色网站建设关于网站建设的专家研讨会
  • 云南建设学校网站首页经营网站 备案查询
  • 廊坊网站建设报价青岛的做网站公司
  • 食品销售公司网站制作选择响应式网站建设
  • 专门做音效的网站wordpress管理员评论在哪儿设置
  • 宿州物流网站建设北京制作网站的基本流程