linux下的端口扫描技术!
这个是我在一本书上看到的,其中的一些代码我有所改变,写给各位好友共享一下!
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include "my_recv.h" // 自定义的头文件
#define SERV_PORT 4507 // 服务器端的端口
#define LISTENQ 12 // 连接请求队列的最大长度
#define INVALID_USERINFO 'n' // 用户信息无效
#define VALID_USERINFO 'y' // 用户信息有效
#define USERNAME 0 // 接收到的是用户名
#define PASSWORD 1 // 接收到的是密码
struct userinfo { // 保存用户名和密码的结构体
char username[32];
char password[32];
};
struct userinfo users[ ] = {
{"linux", "unix"},
{"4507", "4508"},
{"clh", "clh"},
{"xl", "xl"},
{" "," "} // 以只含一个空格的字符串作为数组的结束标志
};
// 查找用户名是否存在,存在返回该用户名的下标,不存在则返回-1,出错返回-2
int find_name(const char *name)
{
int i;
if (name == NULL) {
printf("in find_name, NULL pointer");
return -2;
}
for (i=0; users[i].username[0] != ' ';i++) {
if (strcmp(users[i].username, name) == 0) {
return i;
}
}
return -1;
}
// 发送数据
void send_data(int conn_fd, const char *string)
{
if (send(conn_fd, string, strlen(string), 0) < 0) {
my_err("send", __LINE__); // my_err函数在my_recv.h中声明
}
}
int main()
{
int sock_fd, conn_fd;
int optval;
int flag_recv = USERNAME; // 标识接收到的是用户还是密码
int ret;
int name_num;
pid_t pid;
socklen_t&
相关文档:
准备工作:
用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
程序实现:
使用
use
Win32::ODBC;
语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
$DSN = "DSN =
My DSN ......
原文地址:http://wanping.blogbus.com/logs/28663569.html
1、时间戳转换为正常显示的时间格式
Freebsd
系统下:
转换命令为:
date -r 1112173761 或者:date -r 1112173761 +"%Y-%m-%d %T %z"(年月日的格式不一样)
Linux
系统下:
转换命令:date -d '1970-01-01 UTC 11121 ......
虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出了一些常用的音频编程框架。
一、数字音频
音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然 ......
接触linux时间还不是很长,很多命令记不住,呵呵,拿到新服务器看下硬盘分区 $df –lh 文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 2.0G ......