假期作业8

2024-02-12 07:44
文章标签 假期作业

本文主要是介绍假期作业8,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线程和进程服务器

线程

#include <myhead.h>#define SIP "192.168.0.114"
#define SPORT 8888void *task(void *arg){printf("客户端连接\n");sleep(1);pthread_exit(NULL);
}int main(int argc, const char *argv[])
{int sfd = socket(AF_INET, SOCK_STREAM, 0);if(sfd == -1){perror("socket error");return -1;}int reuse = 1;if(setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) == -1){perror("setsockopt error");return -1;}struct sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_addr.s_addr = inet_addr(SIP);sin.sin_port = htons(SPORT);if(bind(sfd, (struct sockaddr*)&sin, sizeof(sin)) == -1){perror("bind error");return -1;}if(listen(sfd, 128) == -1){perror("listen error");return -1;}struct sockaddr_in cin;socklen_t socklen = sizeof(cin);while(1){int newfd = accept(sfd, (struct sockaddr*)&cin, &socklen);pthread_t tid;if(pthread_create(&tid, NULL, task, NULL) != 0){printf("pthread_create error\n");return -1;}pthread_detach(tid);}return 0;
}

进程

#include <myhead.h>#define SIP "192.168.0.114"
#define SPORT 8888int main(int argc, const char *argv[])
{int sfd = socket(AF_INET, SOCK_STREAM, 0);if(sfd == -1){perror("socket error");return -1;}int reuse = 1;if(setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) == -1){perror("setsockopt error");return -1;}struct sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_addr.s_addr = inet_addr(SIP);sin.sin_port = htons(SPORT);if(bind(sfd, (struct sockaddr*)&sin, sizeof(sin)) == -1){perror("bind error");return -1;}if(listen(sfd, 128) == -1){perror("listen error");return -1;}struct sockaddr_in cin;socklen_t socklen = sizeof(cin);while(1){int newfd = accept(sfd, (struct sockaddr*)&cin, &socklen);pid_t pid = fork();if(pid == -1){perror("fork error");return -1;}if(pid == 0){printf("[%s %d]:已连接\n", inet_ntoa(cin.sin_addr), ntohs(cin.sin_port));close(newfd);raise(SIGKILL);}}return 0;
}

这篇关于假期作业8的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/702055

相关文章

清明假期作业

1、实现文件夹的拷贝功能 注意判断被拷贝的文件夹是否存在,如果不存在则提前 不考虑递归拷贝的问题 #include<myhead.h>int my_copy(char* name,const char *p){char buf[256]="./";strcat(buf,p);strcat(buf,"/");strcat(buf,name);int rfd=open(name,O_RDONLY

假期作业 2月15日

字符串练习 1、选择题 1.1、有以下程序 int main() {   char  a[7]="a0\0a0\0";int  i,j;     i=sizeof(a);  j=strlen(a);        printf("%d  %d\n",i,j); }   //strlen求出字符串的长度,其实是字符串中字符的个数,不包括\0 程序运行后的输出结果是____C____ A)2

假期作业 11

整理chmod、chgrp、chown指令的应用成文档 chmod 文件分类: bcd-lsp d 目录 - 普通文件 b 块设备驱动文件 磁盘 c 字符设备驱动文件 键盘 鼠标 l link 链接文件 软连接 硬连接 网络编程 s socket 套接字文件 网络编程 p pipe 管道文件 权限内容 r read w write - 无权限 x 可执行 权限的修改格式

假期作业 2月14日

指针练习 1、选择题 1.1、若有下面的变量定义,以下语句中合法的是( A )。 int i,a[10],*p; A) p=a+2;       B) p=a[5];      C) p=a[2]+2;      D) p=&(i+2); 1.2、有以下程序 main() {    int  a[3][3],*p,i;    p=&a[0][0];    for(i=0;i<9;i++)

假期作业 2月12日

分支、循环练习 1、选择题 1.1、以下程序的输出结果是________。     main()    {    int k1=1,k2=2,k3=3,x=15; if(!k1)  x--; else if(k2)  if(k3)  x=4; else x=3;        printf(“x=%d\n”,x);     }   A x=4      B x=15     C x=14

2.13 假期作业

磁盘相关的操作 1.将u盘接入虚拟机 2.利用ls /dev/sd*指令检测是非被虚拟机识别 3.df -h查看u盘使用情况    如果没被挂载则无法查找到 4.fdisk ---->工具用于磁盘分区    m:获取帮助信息    p:打印已有的磁盘分区    d:删除已有的磁盘分区    n:新建磁盘分区    w:将操作写入磁盘并保存    q:不写入磁盘保存 如果输入w后,显示设备或

假期作业 10

1.整理磁盘操作的完整流程,如何接入虚拟机,是否成功识别,对磁盘分区工具的使用,格式化,挂载以及取消挂载 U盘接入虚拟机 在虚拟机--->可移动设备--->找到U盘---->连接 检测U盘是否被虚拟机识别 ls /dev/sd* 查看到的有除了sda外的内容,说明U盘连接成功 sda指的是当前虚拟机自己的磁盘空间 查看磁盘的使用情况 df -h 当U盘没有被挂载在具体的目录下时,不能被

假期作业 2月8日

数据类型与作用域练习 1、选择题 1.1、以下选项中,不能作为合法常量的是 __________  A)1.234e04    B)1.234e0.4 C)1.234e+4    D)1.234e0 1.2、以下定义变量并初始化错误的是_____________。      A)     char   c1 =  ‘H’ ;      B)     char   c1 =  99 ;

2.11 假期作业

1、若有以下说明语句:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是(D)。 A)a[g-c]           B)a[4]         C)a[‘d’-‘c’]           D)a[‘d’-c] 2、假设int型变量占两个字节的存储单元,若有定义:int x[10]={0,2,4};则数组x

假期作业 8

1、若有以下说明语句:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是( B)。 A)a[g-c]           B)a[4]         C)a[‘d’-‘c’]           D)a[‘d’-c] 2、假设int型变量占两个字节的存储单元,若有定义:int x[10]={0,2,4};则数组