- 浏览: 262657 次
- 性别:
- 来自: 北京
最新评论
-
ab0809:
写的很好,谢谢
c++中的 extern "C" -
eieihihi:
说得太好了,我就喜欢这种很透彻的说法
c++中的 extern "C" -
infollllll:
package com;import java.io.*;im ...
websocket通讯协议(10版本)简介 -
rocksent:
websocket draft10握手成功了,可是传数据一直失 ...
websocket通讯协议(10版本)简介 -
guanbeilang:
通过你的代码,学会了怎么从客户端接收消息,并改造成了nodej ...
websocket通讯协议(10版本)简介
文章列表
要实现简单的替换功能,只需要用replace方法即可。
比如一个字符串 var s=";i ~am a~~ china; man;";
需要去掉字符串中的';' 和'~',可以这样:
s=s.replace(s/[; ~]/g, '');
第一个参数,可以是字符也可以是正则表达式,如果写这样
s=s.replace(';', '');
只能替换第一个';',我希望是替换所有的';',所以写字符是不行的。
如果想在perl中使用面向对象编程,就要先熟悉perl的模块。
模块就相当于是perl中的'类',一个perl的模块文件以.pm为后缀,其内部结构大致如下:
#!/usr/bin/perl
package DynamicTable;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(heng, ha);
sub heng {
my $class = shift;
print "int method heng() type=$class->{'type'}\n";
}
sub ...
Server端程序
#!/usr/bin/perl
use IO::Socket::INET;
my $sock = IO::Socket::INET->new(
LocalAddr => '127.0.0.1',
LocalPort => 8080,
Listen => 3,
Reuse => 1,
Proto => 'tcp')
or die "can not create server\n";
$sock_2 = $sock->accept(); ...
首先我们要理解定义和声明的区别,举个常见的例子,比如有一个common.c文件中有这样一句话
int var = 7;
然后其对应的common.h文件中有这样一句:
int var;
那么上面一句叫做“定义”,下面一句叫“声明”。
定义为变量分配了存储空间,而声明没有。
声明可有多处,而定义只能在一处.声明不能做初始化.
下面是网友的话:
声明是告诉编译器“我存在!”。定义是告 ...
读写锁是多线程同步中的一个很有用的东东,区分开读者和写者,有助于效率的提升。
就好像是一个签名簿,写者相当于签名的人,读者相当于看签名簿的人,写签名簿的一群人需要排队,一个一个地签名,而读者不需要排队,他们可以一起看。当一群围观的正在看时,匆匆忙忙跑来一个签名的,大喊“让开,我要迟到了,让我签到”,于是大家让开让他签了名子,这说明了什么?
1.写者比读者优先级高,同时竞争读写锁的话,写者将获得锁。
2.写者必须一个一个地获得锁
3.而一群读者可以同时获得读写锁。
下面一段程序说明了这个道理。
...
1.RFC中文文档
http://www.cnpaf.net/Class/RFC/
1.RFC英文文档
http://www.faqs.org/rfcs/
perl 面向对象编程
http://happmaoo.iteye.com/blog/884280
python Windows下Eric5的安装、运行和实验
http://hi.baidu.com/cyzxlsf/blog/item/680f460fbf3dbe336159f345.html
前一阵子,一个同学问我“会写汉诺塔吗?”我寻思以前写过,大不了重写一遍,不难,但是当我写的时候却困难重重。全忘了一点都想不起来怎么写,于是,拿起纸和笔推导了一下递归的过程,然后把代码写出来,从这件事我体会到学习的过程中贵在于积累。
/*
* main.c
*
* Created on: 2010-10-24
* Author: song
*/
#include <stdio.h>
int totalstep = 0;
void move(char A, char B, int id)
{
totalstep ...
pthread_atfork
- register handlers to be called at fork(2) time
pthread_attr_destroy
[pthread_attr_init] - thread creation attributes
pthread_attr_getdetachstate
[pthread_attr_init] - thread creation attributes
pthread_attr_getinheritsched
[pthread ...
带条件变量的多线程.
Condition Variables:
A condition variable is a variable of type pthread_cond_t
and is
used with the appropriate functions for waiting and later, process continuation.
The condition variable mechanism allows threads to suspend execution and
relinquish the processor until some cond ...
带锁的多线程。
Mutexes:
Mutexes are used to prevent data inconsistencies due to operations by
multiple
threads upon the same memory area performed at the same time or to
prevent race conditions where an order of operation upon the memory is
expected.
A contention or race condition often occurs w ...
带join的多线程程序。
#include <stdio.h>
#include <pthread.h>
#define NTHREADS 10
void *thread_function(void *);
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
int counter = 0;
main()
{
pthread_t thread_id[NTHREADS];
int i, j;
for(i=0; i < NTHREADS; i++)
{ ...
最简单的多线程程序,不多说。
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
char *message1 = "Thread 1";
char *message2 = "Thread 2";
int iret1, i ...
做网页时常用到javascript对输入文本的验证,我本人是做网络方便的产品,故对ip地址,mac地址等验证用的多一些,
收集了一些平时常用到的验证函数。
验证IP:
<script language="javascript">
function ipvalid(ip)
{
if (ip == "") return;
var reg = /^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2 ...
传统的form表单如下所示:
<form name="input" action="recv.cgi" method="post">
Username:
<input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
上面代码可以放到下面网页上,查看效果。
...
这是我学习的最简单的perl程序,就是它,带我进入了perl的世界。
#!/usr/bin/perl
while (<>) {
if ($_ =~ /^hello/i) {
print $& . "\n";
}
}
还可以再减少一行。
#!/usr/bin/perl
while (<>) {
print if($_ =~ /^hello/i);
}
当输入的字符串开头为hello(不区分大 ...
- 2010-08-16 17:55
- 浏览 897
- 评论(0)