您的位置:首页 > 娱乐 > 明星 > 安阳包装设计_文创产品设计作品欣赏_百度关键词优化工具_如何在百度上做免费推广

安阳包装设计_文创产品设计作品欣赏_百度关键词优化工具_如何在百度上做免费推广

2024/12/23 14:23:48 来源:https://blog.csdn.net/2301_77576552/article/details/143932709  浏览:    关键词:安阳包装设计_文创产品设计作品欣赏_百度关键词优化工具_如何在百度上做免费推广
安阳包装设计_文创产品设计作品欣赏_百度关键词优化工具_如何在百度上做免费推广

笔记脑图

作业:多进程多线程并发服务器实现一遍提交。

多进程

#include <stdio.h>
#include <string.h>
#include <myhead.h>
#define IP "192.168.60.44"
#define PORT 6666
#define BACKLOG 20
void fun(int sss)
{if(sss==SIGCHLD){while(waitpid(-1,NULL,0)>0);}
}
int main(int argc, const char *argv[])
{//if(signal(SIGCHLD,fun)==SIG_ERR){perror("signal");return -1;}//int oldfd=socket(AF_INET,SOCK_STREAM,0);if(oldfd==-1){perror("socket");return -1;}//int n=1;if(setsockopt(oldfd,SOL_SOCKET,SO_REUSEADDR,&n,sizeof(n))==-1){perror("setsockopt");return -1;}printf("端口号快速复用成功\n");//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;}//if(listen(oldfd,BACKLOG)==-1){perror("listen");return -1;}struct sockaddr_in client;socklen_t client_len=sizeof(client);char buff[1024];while(1){//int newfd=accept(oldfd,(struct sockaddr *)&client,&client_len);printf("%s发来连接请求\n",inet_ntoa(client.sin_addr));pid_t pid=fork();if(pid>0){close(newfd);}else if(pid==0){close(oldfd);while(1){int len=recv(newfd,buff,sizeof(buff),0);if(len==0){printf("%s客户端退出\n",inet_ntoa(client.sin_addr));break;}printf("客户端%s发来消息:%s\n",inet_ntoa(client.sin_addr),buff);strcat(buff,inet_ntoa(client.sin_addr));send(newfd,buff,sizeof(buff),0);}close(newfd);exit(0);}else{perror("fork");return -1;}}return 0;
}

多线程

#include <stdio.h>
#include <string.h>
#include <myhead.h>
#define IP "192.168.60.44"
#define PORT 6666
#define BACKLOG 1024
typedef struct 
{struct sockaddr_in client;int newfd;
}stu;
void *fun(void *sss)
{int newfd=((stu *)sss)->newfd;struct sockaddr_in client=((stu *)sss)->client;printf("%s发来消息\n",inet_ntoa(client.sin_addr));char buff[1024];while(1){int len=recv(newfd,buff,sizeof(buff),0);if(len==0){printf("客户端退出\n");break;}printf("收到消息:%s\n",buff);strcat(buff,"1973");send(newfd,buff,sizeof(buff),0);}pthread_exit(NULL);
}
int main(int argc, const char *argv[])
{int oldfd=socket(AF_INET,SOCK_STREAM,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;}//if(listen(oldfd,BACKLOG)==-1){perror("listen");return -1;}struct sockaddr_in client;socklen_t client_len=sizeof(client);while(1){int newfd=accept(oldfd,(struct sockaddr *)&client,&client_len);stu a;a.newfd=newfd;a.client=client;pthread_t tid;tid=pthread_create(&tid,NULL,fun,&a);if(tid==-1){perror("pthread_create");return -1;}pthread_detach(tid);}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com