happy study
merry

Tuesday, July 11, 2006

import java.awt.*;
import java.awt.event.*;
class Mywindow extends Frame
{
Label l1,l2;
TextField t1,t2;
Panel p1,p2;
Button b1,b2;
Mywindow()
{
super("登陆界面");
l1=new Label("姓名");
l2=new Label("密码");
t1=new TextField(8);
t2=new TextField(8);
p1=new Panel();
p2=new Panel();
b1=new Button("确定");
b2=new Button("取消");
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
p1.add(l1);
p1.add(t1);
p1.add(l2);
p1.add(t2);
p2.add(b1);
p2.add(b2);
setLayout(new BorderLayout());
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.SOUTH);
setSize(300,200);
setVisible(true);

}
}
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class ChatDialog extends Frame
{
Panel p1,p2;
TextArea t1,t2;
Button b1;
MenuBar m1;
Menu m2;
MenuItem m3;
ChatDialog()
{
super("聊天窗口");
p1=new Panel();
p2=new Panel();
t1=new TextArea();
t2=new TextArea();
m1=new MenuBar();
m2=new Menu("应用");
m3=new MenuItem("传送文件");
b1=new Button("发送");
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
setMenuBar(m1);
p1.add(t1);
m1.add(m2);
m2.add(m3);
p2.add(t2);
p2.add(b1);
setLayout(new BorderLayout());
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
}
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
public class Study
{
public static void main(String args[])
{
//Mywindow win=new Mywindow();
ChatDialog chat=new ChatDialog();

}
}

 

posted @ 11:53 PM

Sunday, July 09, 2006

1.客户端
我们先从客户端开始,它用远端的机器名作为参数。它调用UNIX程序gethostbyname把该名字转化为远端主机的IP地址。下一步构造套接字接口所需的地址数据结构(sin)。注意这个数据结构表明我们将一直用套接字与因特网(AF_INET)连接。在这个例子中,我们用TCP端口号5432作为共知的服务器端口号;它恰好不是分配给其他因特网服务的端口号。建立连接的最后一步是调用socket和connect。一旦connect操作返回,建立起连接,客户程序将进入主循环,不断从标准输入读文本并通过套接字发送。
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define SERVER_PORT 5432
#define MAX_LINE 256

int
main(int argc,char * argv[])
{
  FILE *fp;
struct hostent *hp;
struct sockaddr_in sin;
char *host;
char buf[MAX_LINE];
int s;
  int len;

  if(argc==2){
 host=argv[1];
}
  else {
    fprintf(stderr,”usage:simplex-talk host\n”);
    exit(1);
  }
/* 将主机名翻译成对等实体的IP地址 */
hp=gethostbyname(host);
if(!hp) {
 fprintf(stderr,”simplex-talk:unknown host:%s\n”,host);
 exit(1);
  }    

/* 建立地址数据结构 */
bzero((char *)&sin,sizeof(sin));
sin.sin_family=AF_INET;
bcopy(hp->h_addr,(char *)&sin.sin_addr,hp->h_length);
sin.sin_port=htons(SERVER_PORT);

/* 主动打开 */
if((s=socket(PF_INET,SOCK_STREAM,0))<0) {
    perror(“simplex-talk:socket”);
exit(1);
}
if(connect(s, (struct sockaddr *)&sin,sizeof(sin)) <0  ) {

perror(“simplex-talk:connect”);
close(s);
exit(1);
}

/* 主循环:获得并发送文本行 */
while(fgets(buf,sizeof(buf),stdin)){
buf[MAX_LINE-1]=’\0’;
len=strlen(buf)+1;
send(s,buf,len,0);
}
}
2.服务器
服务器的实现也很简单。首先,它填上自己的端口号(SERVER_PORT)构造地址数据结构。其次,它并不指明IP地址,从而使应用程序可以接受来自本地任一IP地址的连接。然后,服务器执行与被动打开有关的初始步骤:建立一个套接字,将它绑定到本地地址,然后设置允许同时连接的最大数。最后,主循环等待远端主机试图与之连接,当远端有一台主机试图与之连接时,它就接收并输出连接上送来的字符。
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define SERVER_PORT 5432
#define MAX_PENDING 5
#define MAX_LINE 256

int main()
{
  struct sockaddr_in sin;
  char buf[MAX_LINE];
  int len;
int s,new_s;
 
/* 建立地址数据结构 */
bzero((char *)&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_port=htons(SERVER_PORT);

/* 建立被动连接 */
if((s=socket(PF_INET,SOCK_STREAM,0))<0) {
perror(“simplex-talk:socket”);
exit(1);
}
if((bind(s,(struct sockaddr *)&sin,sizeof(sin)))<0) {
perror(“simplex-talk:bind”);
exit(1);
}
listen(s,MAX_PENDING);
 
/* 等待连接,然后接收并输出文本 */
while(1) {
  if((new_s=accept(s,(struct sockaddr *)&sin,&len))<0) {
    perror(“simplex-talk:accept”);
    exit(1);
}
while(len=recv(new_s,buf,sizeof(buf),0))
fputs(buf,stdout);
close(new_s);
}
}

posted @ 11:54 PM

Friday, June 09, 2006

关于网络安全的一些知识:
它可以被粗略的分为相互交互的领域:保密,鉴别,不可否认,完整性控制。所有这些问题也发生在传统的系统中,比如,利用挂号信和文档上锁的做法可以获得完整性和保密性。
 而我现在说的是关于网络的安全,毕竟不能和现实相比。网络交换的东西都是通过电缆(有线网络),或者电磁波来完成,不象现实中能直接看到要传的东西。
我们先来谈一下网络安全位于协议栈的什么位置上。
     1。在数据链路层上,对于点到点线路上的分组,在离开一台机器的时候可以被加密,当进入另一台机器的时候进行解密。然而,当分组要穿过多个路由器的时候,这种方案可能无法工作,因为每一台路由器上分组必须要解密。从而使得分组容易受到路由器内部的攻击。
     2。在网络层上,可以通过安装防火墙来过滤分组IP安全(IPSEC)也运行在这一层上。
在传输层上,整个连接可以一端到端的方式来加密,也就是说从进程到进程的加密方式。
最后,诸如象用户认证和不可否认这样的问题只能在应用层上得到解决。
posted @ 11:07 PM

Saturday, May 27, 2006

有是周末了,觉的应该写点学习笔记了,前几天从图书馆里摘抄的一些内容感觉不错,如下:

关于以太网协议;
    以太网的介质访问控制(MEDIA ACCESS CONTROL)
1。帧格式
  64比特前缀允许接受方与信号同步
 64b         48b            48b          16b     x            32b
preamble    destaddress    srcaddress   type   body           crc
这个格式取自DIGITAL-INTEL-XEROX以太网标准。
2。地址
   每个以太网主机,有一个唯一的以太网地址,从技术上来讲,地址属于适配器,通常固化在ROM中,由六个有冒号分隔的数组成,每个数对于6字节地址的一个字节,并且由一对16进制给出。如;8:0:2b:e4:b1:2
3.WEB和其他媒体的差别有哪些特点?
  为了实现这些特点,都需要哪些技术支持?
1。基于网络。
 利用网络发送,接受内容,比如通过HTTP,TCP/IP
2。超文本,多媒体。
 -内容表示(HTML XML)
- 定位一个主页(连接地址),URL
3。交互性
-CGI,服务器端,客户端脚本中,插件,APPLET
4普适性。
如多种终端PC,应用层PROFILE。
5分布性
-健壮性与管理的复杂性。

前面两个是关于以太网的一些概念,后面一个是关于WEB的,都写的很简短,但我觉的总结的还算不错。

posted @ 12:49 AM

Thursday, May 18, 2006

今天遇到一个很恶心的问题,我用CMD进入命令行界面,输入PING命令后,竟然说它是不识别的命令,我当时很是想不明白,因为以前一直都好好的。我想到是环境变量的问题,因为我找到系统路径下的CMD.exe文件打开后,键入PING,IPCONFIG等命令,完全没问题,说明CMD文件没损坏。我想到刚装了TOMCAT服务器运行环境,增加了几个环境变量,不会是这个问题吧,我只是增加了几个变量,我很是想不明白。有待研究这个问题。

还有一个问题就是关于IP为127.0.0.1的地址,装完IIS后在IE中输入这个地址后弹出对话框要求输入用户名和密码,输完之后,也显示没权限,但是在IE中输入HTTP://LOCALHOST的话,就能正常显示默认网页,应该这个IP和LOCALHOST是等价的吧,怎么实际却不行呢?还是不明白,不过这个IP后面有网页名的时候,能正常显示,比如;HTTP://127.0.0.1/IISHELP.ASP,也就是只有在IE中单独输IP的时候不行.

posted @ 3:32 AM

Saturday, May 13, 2006

学习一接近尾声,但成效却不怎么样,学那么久也只是懂些皮毛的东西,虽然说是选修课,也不必学的怎么好怎么好,但作为了解知识来讲,还是挺失败的,从我的日记当中便可以看出来,没有编程之类的总结,我总觉的那太难了,看书的时候也是把这些给跳过去,去看一些命令,操作什么的,然后在用机器试以下效果,感觉不错就多试几遍,慢慢能掌握一些操作了,这些到是我学这门课学到的,不过这些我觉的是人就能学会的操作还是少提为好,省的人家笑话。

   虽然学的不好,自己的日记 也写的不好,但我还是会在这写东西的,不管东西多么简单,这门课结了后,我想还是会的

学习笔记:

lspci -v 查看硬件芯片

修改分辨率vi /etc/X11/FX86config,找到Monitor修改

时钟分为系统时钏和硬件时钟,在启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作.
查看时钟:
date

设置系统时钟:
date 091713272004.30
格式:
date 月日时分年.秒

查看硬件时钟:
hwclock或clock,命令差不多.
设置硬件时钟:
hwclock --set --date="04/11/2004 23:16:25"
或clock --set --date="04/11/2004 23:16:25"

硬件时钟与系统时钟同步:
hwclock --hctosys或clock --hctosys
系统时钟与硬件时钟同步:
hwclock --systohc或clock --systohc

arp 查看本地的MAC地址

ifconfig eth0 210.75.32.28 netmask 255.255.255.128 broadcast 210.75.32.127
给eth0接口加入IP地址及掩码
ifconfig eth0 down 关闭接口
ifconfig eth0 up 打开接口

FTP命令:
ls:列出远程机上改变工作目录
cd:在远程机上改变工作目录
lcd:在本地机改变工作目录
close:终止当前的ftp对话
get(mget):从远程服务器指定文件到本机
put(mput):从本机上传到远程服务器
bye:离开

more /root/.bash_history 查看历史命令

在一张网卡上绑定多个IP地址:
ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0
ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0

把iso制作成虚拟光驱 dd if=/dev/cdrom of=jin.iso bs=2048

env命令用来查看环境变量

du -h 显示本目录的文件及各文件的大小
du -sh 显示目录占硬盘总的大小

Linux下如何查找文件?
& 在当前目录下查找文件明为*.sql的文件: $find . -name "*.sql"
& 查找大于100M的文件: find . -size +100000
& 查找含有"china" 的文件: find . -name "*" -exec grep -l "china" {}\
& 查找并删除tmp*的文件: find . -name "tmp* -exec rm {}\

 


 

posted @ 7:11 PM
 

LINUX这门课是选修课,我选它的时候就决定把它学好,但现在看来事实并并非那

么容易,从开始的一些基本命令到现在一些接近内核的学习,我更加感觉到操作

系统的复杂性,大二理论学习固然不少,但那是远远不够的,操作系统要完成的

基本功能,主要是为了给用户提供一个简单易懂的操作平台,对机器底层复杂,

繁琐的操作隐藏。而我们要接触却是这些让人恶心的东西里面去。对于开放源代

码的LINUX系统必然是学习这方面的首选。
  我现在慢慢觉的,老师讲课的角度是不是太高了,就是说好多东西老师觉的特

别简单,而我却摸不着边,是不是大学的教学就是要经历这样的阶段。不过从我

个人来说,我觉的自己的原因还是很主要的,知识是一个联系的过程,当得出一

个结果,它涉及的方面很多,在这些方面里,自己不懂有很多,很多可能是最关

键的,而我没有弄明白。

学习知识点:

硬盘的查找:$fdisk -la
或者是$/sbin/fdisk -la

$  mount -t vfat -o iocharset=cp936 /dev/hdxx /mnt/windows其中,hdxx为要挂载的分区。Linux下对分区的命名方式和Windows下的不同,所有的IDE硬盘分区以hdxx来命名,hda对应IDE0上的主设备,hda1对应IDE0上主设备的第一个分区,以此类推。

posted @ 6:47 PM

Saturday, April 15, 2006

接着上次写得笔记,还是一些关于文件的基本操作,是文件的复制,删除,移动等.

CP,RM,MV

格式; CP 源文件名,新复制的文件或新的目录.

    RM  要删除的文件名.

    MV 要更改的文件名  新的文件名或被移到的目录.

不过这里是不是有个问题,CP和MV是先要判断文件名代表的是一个确切的文件而不是一个目录.对于RM命令如果源文件是一个视频文件(其他的文件也一样),而它后面的名字如果是一个已存在的目录,它的操作是不是将这个视频文件剪切到这个目录下,而当后面的是一个新的文件名,这个操作是不是将这个文件的名字该成后面的名字呢?

posted @ 8:46 PM

Sunday, March 26, 2006

不知不觉又到了周末才记的要往这上面添的东西,其实,学习操作系统挺烦的,以前就专门学习过它的理论知识,现在又重点学习LINUX,总觉的老师在上面讲的特有劲,而自己却听的很糊涂,很是郁闷.但毕竟还是要学的,没办法呀!

今天我去图书馆借了一本有关SHELL编程的书,因为其他一些原理性的书理论一大篇一大篇的,看着就想睡觉.我还是比较看实际点东西,这本书从最基本的操作开始讲起,这样还是比较让人接受.用习惯了大部分的WINDOWS的操作系统,面对一个新的系统很是不习惯,但正是这样我才会仔细去比较他们,但毕竟我现在的理解肯定是很肤浅的,也很可能根本就是错的,但我觉的这并没什么关系.好的现在切入正题.以下是我刚刚学到的:

   (1)关于文件操作

1.查看文件的内容CAT,MORE,LESS,PG

格式 cat  文件名; 其他几个也是如此.当文件比较多的时候,在一屏内显示不完,则用MORE比较合适.内容显示一屏会暂停输出,按空格,则会继续输出下一屏,按'Q'退出,LESS,PG与 MORE类似.

posted @ 3:15 AM

Wednesday, March 15, 2006

挂上和卸载文件系统

      这是我第一次接触LINUX而从同学那学到的一点东西,仅是一些概念的认识.就用它来作为我的第一次学习日记吧.

文件系统可以形象化为一棵树,root就是根:像这样//dev/usr等。根目录下的其他目录也可能有分支,这些分支也会有它们自己的分支,像这样/usr/local等等。之所以要采用这种分离的文件系统有很多原因。/var包含log/spool/和多种临时文件,所以这个目录可能会被塞满。塞满根文件系统不是一个好主意,所以从/分离出一个/var比较好。

在其他的文件系统上,采用这种目录树结构的另一个原因是它们可能会在另外一个物理磁盘上,或在另外一个虚拟磁盘上,例如加载NFS文件系统或CDROM驱动器。

posted @ 7:35 PM