- 4
- 0
- 约6.2千字
- 约 17页
- 2018-06-09 发布于山西
- 举报
并发服务器
软 件 学 院 信息安全产品开发实践实验八报告 陈枝-1043111034 2012-11-13
四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
班级:__第 周
? 信息安全产品开发实践 实验课时 2 实验项目 并发服务器(二) 实验时间 第十周
2012年月日2012年月日 实验目的 实现多线程服务器 实验环境 ?X86,WindowsXP,VMware5.0,RedHat Linux 9.0 实验内容(算法、程序、步骤和方法) 实验要求:
1 修改远程控制程序服务器程序,将其从循环模式或多进程模式修改为多线程模式
2实现一个多线程端口扫描程序:
要求:
能同时扫描5个IP地址;
针对每个iP地址,开设100个线程对其进行扫描;
如果端口打开,使用函数getservbyport获取其服务名,在屏幕上打印:IP port servername,如果是未知服务,则屏幕显示:ip port unkonown
实验一代码:
#include stdio.h
#include stdlib.h
#include string.h
#include sys/socket.h
#include netinet/in.h
#include sys/types.h
#include pthread.h
#include unistd.h
#include arpa/inet.h
#define PORT 8900
#define BUFSIZE 2048
struct ARG
{
int conn_sock;
struct sockaddr_in client;
};
int execute(char*command,char*buf)
{
FILE *fp;
int count;
char commandbuf[2056];
if ((NULL==command)||(NULL==buf))
{
perror(command or buf is empty\n);
return -1;
}
count =0;
memset(commandbuf,0,2056);
strcat(commandbuf,sh -c );
strcat(commandbuf,command);
fprintf(stderr,the command is %s\n,commandbuf);
if (NULL==(fp=popen(commandbuf,r)))
{
perror(create pipe error\n);
return -1;
}
while ((count2047) (EOF!=(buf[count++]=fgetc(fp))));
buf[count-1]=\0;
return count;
}
/*
int pthread_create(pthread_t * thread,pthread_attr_t * attr,void *(*start_routine)(void *),void *arg);
int pthread_exit(void *retval);
int pthread_cancel(pthread_t thread);
int pthread_join(pthread_t th,void **thread_return);
int pthread_detach(pthread_t th);
*/
void process_cli(int conn_sock,struct sockaddr_in client)
{
char sendbuf[BUFSIZE];
char recvbuf[BUFSIZE];
int sendnum;
int recvnum;
while(1)
{
memset(recvbuf,0,BUFSIZE);
memset(sendbuf,0,BUFSIZE);
if (0=(recvnum=read(conn_sock,recvbuf,BUFSIZE)))
{
perror(the commucation error\n);
close(conn_sock);
return -1;
}
recvbuf[recvnum]=\0;
fprintf(stderr,the command is:%s\n,recvbuf);
if (0==strcmp(recvbuf,quit))
{
fprintf(stderr,the client is quit\n);
c
您可能关注的文档
最近下载
- 部编版语文四年级下册 第五单元综合能力提升卷(含答案).doc VIP
- 未成年人保护法解读与宣传.pptx VIP
- 2012江苏高考《伯父墓表》详解.ppt VIP
- Metformin 盐酸二甲双胍 药品 0.5g 说明书.pdf
- 致用英语口语教程(第三版)(上)Unit9课件PPT课件.pptx VIP
- SAP工艺简介SAP工艺简介.pdf VIP
- 提高术后手术间的归整率.docx VIP
- 硬笔书法纸可直接打印的口字格米字格田字格等模板.doc VIP
- 《Spark批处理技术与应用》课件——5. Spark机器学习(MLlib).pptx VIP
- 【中考真题】2024年北京中考数学试题及答案 .pdf VIP
原创力文档

文档评论(0)