June 27, 2011
svn git 的windows客户端
"\u003cp\u003e根据自己使用的操作系统是32位的还是64位的不同,需要选择软件的相应版本。\u003c/p\u003e\n\u003cp\u003e先安装msysgit:\n\u003ca href=\"https://git-scm.com/downloads\"\u003ehttps://git-scm.com/downloads\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e再安装git windows客户端tortoisegit :\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://download.tortoisegit.org/\"\u003ehttp://download.tortoisegit.org/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e在安装tortoisegit的时候,选择第一个 Use(Tortoise)Plink即可。\u003c/p\u003e\n\u003cp\u003e===================\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTortoiseGit日常使用指南\u003c/strong\u003e: \u003ca href=\"/wp-content/uploads/2011/01/TortoiseGit_Guide.pdf\"\u003e/wp-content/uploads/2011/01/TortoiseGit_Guide.pdf\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e相关教程:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGit使用教程视频:\nGit使用学习教程:\n在 CentOS 装 Git:\n在FreeBSD下安装:\u003c/p\u003e\n\u003cp\u003e============================================================\u003c/p\u003e\n\u003cp\u003esvn windows客户端:\n\u003ca href=\"http://tortoisesvn.tigris.org/\"\u003ehttp://tortoisesvn.tigris.org/\u003c/a\u003e\u003c/p\u003e"
June 27, 2011
在FreeBSD 8.1下搭建Git服务器
"\u003cp\u003eGit是一个由林纳斯•托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1、在FreeBSD8.1下安装Git服务器\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e(1)用ports安装Git\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecd /usr/ports/devel/git\nmake install clean\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003e(2)修改/etc/rc.conf,让git随开机启动\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit_daemon_enable=”YES”\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003e(3)新增使用者git\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epw useradd git\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003e(4)启用git daemon\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e/usr/local/etc/rc.d/git_daemon start\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003e(5)用sockstat 来验证git是否启动\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esockstt -4l | grep 9418\nroot git-daemon 37064 3 tcp4 …\u003c/code\u003e\u003c/pre\u003e"
June 27, 2011
mysql memcached UDF安装使用[教程]
"\u003cp\u003e在Centos5.6下通过验证!\u003c/p\u003e\n\u003cp\u003e官方网站:\u003c/p\u003e\n\u003cp\u003e很早之前,就看到了通过mysql UDF 更新memcached ,原来也研究过一段时间,只是没有来得及写个文档,导致后来工作中,经常要google,搜索其安装,使用的方法,刹时麻烦,今天总结一下:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1:mysql memcached UD介绍\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003emysql memcached UDF 其实就是通过libmemcached来使用memcache的一系列函数,通过这些函数,你能 对memcache进行get, set, cas, append, prepend, delete, increment, decrement objects操作,如果我们通过mysql trigger来使用这些函数,那么就能通过mysql更好的,更自动的管理memcache!下载地址:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2:安装方法:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1)安装memcache和memcached\u003c/p\u003e\n\u003cp\u003e参考:\u003c/p\u003e\n\u003cp\u003e2)安装libmemcached()\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e$ wget \u003ca href=\"http://download.tangent.org/libmemcached-0.31.tar.gz\"\u003ehttp://download.tangent.org/libmemcached-0.31.tar.gz\u003c/a\u003e\n$ tar -xzvf …\u003c/p\u003e\u003c/blockquote\u003e"
June 26, 2011
FreeBSD下安装mysqli扩展[原创]
"\u003cp\u003e参考原来的文章:,后来发现程序使用的mysqli扩展没有安装,这里介绍安装方法.\u003c/p\u003e\n\u003cp\u003e此方法在FreeBSD8.2下,php5.2.17和php5.3.6均正常!\u003c/p\u003e\n\u003cp\u003e由于原来用的ports安装方法,默认的安装包下载到了/usr/ports/distfiles这个目录里了.这里直接使用,如果没有的话,请从网上下载一个安装包,但要注意一定要和已经安装过的php版本一样才可以.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一.找到mysqli所在位置\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecd /usr/ports/distfiles/\ntar zxvf php-5.3.6.tar.gz\ncd php-5.3.6/ext/mysqli\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e二.安装mysqli\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e/usr/local/bin/phpize\n————————–\nConfiguring for:\nPHP Api Version: 20090626\nZend Module Api No: 20090626\nZend Extension Api No: 220090626\nconfigure.in:3: warning: prefer named diversions\nconfigure.in:3: warning: …\u003c/p\u003e\u003c/blockquote\u003e"
June 25, 2011
Failed to initialize storage module解决方法
"\u003cp\u003e今天更新了一下自己的cms,然后后台就提示登陆不了,报错如下:Failed to initialize storage module。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e解决方法有两种如下:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1。在报错的文件里的session start();之前加入如下代码:ini_set(‘session.save_handler’, ‘files’); 。这种方法适合租用空间的用户使用。\u003c/p\u003e\n\u003cp\u003e2。在php.ini文件里,显式指定session的save_path(比如 c:/temp)然后重启web服务。如果服务器的管理权限属于你,那还是这样改比较方便。\u003c/p\u003e\n\u003cp\u003e原因分析:php5一个安全模式的bug,默认session的save_path是系统的临时目录,这样会要校验权限。\u003c/p\u003e\n\u003cp\u003ePHP中使用SESSION后出现Failed to initialize storage module错误的解决方法:\n在session start之前加入以下这句话\nini_set(‘session.save_handler’, ‘files’);\u003c/p\u003e"
June 24, 2011
Mongodb相关学习资料
"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2011/06/Mongo_share.ppt\"\u003eMongo资料分享.ppt\u003c/a\u003e \u003ca href=\"/wp-content/uploads/2011/06/01-MongoDB.ppt\"\u003e认识MongoDB.ppt\u003c/a\u003e \u003ca href=\"/wp-content/uploads/2011/06/MongoDB222.ppt\"\u003eMongoDB技术交流.ppt\u003c/a\u003e \u003ca href=\"/wp-content/uploads/2011/06/SQL-to-MongoDB.pdf\"\u003eSQL-to-MongoDB.pdf\u003c/a\u003e \u003ca href=\"http://blog.nosqlfan.com/html/1595.html\"\u003eQCon北京2011大会之:MongoDB开发应用实践\u003c/a\u003e \u003ca href=\"http://www.mysqlops.com/2011/06/13/nosql-cassandra-architecture.html\"\u003eNoSQL应用场景及Cassandra架构分析\u003c/a\u003e \u003ca href=\"/wp-content/uploads/2011/06/MongoDB-Tools.rar\"\u003eWindows下MongoDB管理工具(启用和服务)\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_insert.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_insert.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_objectid.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_objectid.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_field.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_field.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_query.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_query.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_in_count_or.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_in_count_or.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_index.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_index.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_update.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_update.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_aggregation.bmp\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_aggregation.bmp\" alt=\"\"\u003e\u003c/a\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_datetype.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/mongodb_datetype.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html\"\u003emongoDB 入门指南、示例\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNoSQl存储模型\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/nosql-model.png\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/nosql-model.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMongo与Mysql语法对应关系图\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/SQL-to-MongoDB.png\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/SQL-to-MongoDB.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/06/rdbms-mongodb.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/06/rdbms-mongodb.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e数据库\u003c/p\u003e\n\u003cp\u003e表\u003c/p\u003e\n\u003cp\u003e行\u003c/p\u003e\n\u003cp\u003e写入\u003c/p\u003e\n\u003cp\u003e查询\u003c/p\u003e\n\u003cp\u003eMongoDb\u003c/p\u003e\n\u003cp\u003edatabase\u003c/p\u003e\n\u003cp\u003eCollection\u003c/p\u003e\n\u003cp\u003eDocument\u003c/p\u003e\n\u003cp\u003einsert into blog.users values(“user1”,”23))===========\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003euse blogswitched to db blog\u0026gt; u = { name:”user1″, age:23 }\u003c/p\u003e\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003edb.users.insert(u)\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e主要用到的查询函数式 find() 和 findOne(),前者返回一个迭代器 cursor,后者返回单个文档。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003edb.users.find({name:”user1″}){\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e“_id” : …\u003c/p\u003e"
June 24, 2011
MongoDB Linux下的安装和启动
"\u003cp\u003e这里用的是64位版本.使用时请检查相应操作系统的版本是32位还是64位.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1\u0026gt;设置mongoDB目录\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecd /home/apps\nmkdir /home/apps\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e2\u0026gt;下载mongodb\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewget \u003ca href=\"http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.3.tgz\"\u003ehttp://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.3.tgz\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e3\u0026gt;解压缩文件\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etar xzf mongodb-linux-x86_64-1.6.3.tgz\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e4\u0026gt;启动服务\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e./mongodb-linux-x86_64-1.6.3/bin/mongod -dbpath=/data/mongodb/db -logpath=/data/mongodb/log\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e5\u0026gt;将mongoDB服务加入随机启动\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003evi /etc/rc.local\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e使用vi编辑器打开配置文件,并在其中加入下面一行代码\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e/home/apps/mongodb/bin/mongod –dbpath /data/mongodb/db –port 27017 –logpath /data/mongodb/log –logappend …\u003c/p\u003e\u003c/blockquote\u003e"
June 23, 2011
详解Linux系统修改环境变量PATH路径的方法
"\u003cp\u003e**关于PATH的作用:\n** PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e**关于新增自定义路径:\n** 现在假设你新安装了一个命令在/usr/locar/new/bin下面,而你又想像ls一样在任何地方都使用这个命令,你就需要修改环境变量PATH了,准确的说就是给PATH增加一个值/usr/locar/new/bin。你只需要一行bash命令export PATH=$PATH:/usr/locar/new/bin。这条命令的意思太清楚不过了,使PATH自增:/usr/locar/new/bin,既PATH=PATH+”:/usr/locar/new/bin”;通常的做法是把这行bash命令写到/root/.bashrc …\u003c/p\u003e"
June 21, 2011
centos下安装RabbitMQ消息队列
"\u003cp\u003e这里环境为centos7 64位.\n一。安装erlang\u003c/p\u003e\n\u003cp\u003e[shell]su -c ‘rpm -Uvh \u003ca href=\"http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm\"\u003ehttp://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm\u003c/a\u003e’\nsudo yum install erlang[/shell]\u003c/p\u003e\n\u003cp\u003e二。安装rabbitmq\u003c/p\u003e\n\u003cp\u003e我们是用CentOS7(RHEL7也一样),可以从这里: \u003ca href=\"http://fedoraproject.org/wiki/EPEL/FAQ#howtouse\"\u003ehttp://fedoraproject.org/wiki/EPEL/FAQ#howtouse\u003c/a\u003e 找到安装有erlang的RHEL7(CentOS同)软件仓库并安装:\u003c/p\u003e\n\u003cp\u003e[shell]\nwget -c \u003ca href=\"http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm\"\u003ehttp://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003esudo rpm –import \u003ca href=\"http://www.rabbitmq.com/rabbitmq-signing-key-public.asc\"\u003ehttp://www.rabbitmq.com/rabbitmq-signing-key-public.asc\u003c/a\u003e\nsudo yum install …\u003c/p\u003e"
June 20, 2011
老生常谈: ulimit问题及其影响
"\u003cp\u003eulimit最初设计是用来限制进程对资源的使用情况的,因为早期的系统系统资源包括内存,CPU都是非常有限的,系统要保持公平,就要限制大家的使用,以达到一个相对公平的环境。以下是典型的机器默认的限制情况:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$ ulimit -a\ncore file size (blocks, -c) 0\ndata seg size (kbytes, -d) unlimited\nscheduling priority (-e) 0\nfile size (blocks, -f) unlimited\npending signals (-i) 204800\nmax locked memory (kbytes, -l) 32\nmax memory size (kbytes, -m) unlimited\nopen files (-n) 1024\npipe size (512 bytes, -p) 8 …\u003c/code\u003e\u003c/pre\u003e"
June 17, 2011
iostat来对linux硬盘IO性能进行了解
"\u003cp\u003e以前一直不太会用这个参数。现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$iostat -x 1\nLinux 2.6.33-fukai (fukai-laptop) _i686_ (2 CPU)\navg-cpu: %user %nice %system %iowait %steal %idle\n 5.47 0.50 8.96 48.26 0.00 36.82\n\nDevice: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util\nsda 6.00 273.00 99.00 7.00 2240.00 2240.00 42.26 1.12 10.57 7.96 84.40\nsdb 0.00 …\u003c/code\u003e\u003c/pre\u003e"
June 16, 2011
Linux系统设置–ulimit
"\u003cp\u003e**功能说明:**控制shell程序的资源。\u003c/p\u003e\n\u003cp\u003e**语 法:**ulimit [-aHS][-c ][-d \u0026lt;数据节区大小\u0026gt;][-f \u0026lt;文件大小\u0026gt;][-m \u0026lt;内存大小\u0026gt;][-n \u0026lt;文件数目\u0026gt;][-p \u0026lt;缓冲区大小\u0026gt;][-s \u0026lt;堆叠大小\u0026gt;][-t ][-u \u0026lt;程序数目\u0026gt;][-v \u0026lt;虚拟内存大小\u0026gt;]\u003c/p\u003e\n\u003cp\u003e**补充说明:**ulimit为shell内建指令,可用来控制shell执行程序的资源。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e参 数:\u003c/strong\u003e\n-a 显示目前资源限制的设定。\n-c 设定core文件的最大值,单位为区块。\n-d \u0026lt;数据节区大小\u0026gt; 程序数据节区的最大值,单位为KB。\n-f \u0026lt;文件大小\u0026gt; shell所能建立的最大文件,单位为区块。\n-H 设定资源的硬性限制,也就是管理员所设下的限制。\n-m \u0026lt;内存大小\u0026gt; 指定可使用内存的上限,单位为KB。\n-n \u0026lt;文件数目\u0026gt; 指定同一时间最多可开启的文件数。\n-p \u0026lt;缓冲区大小\u0026gt; 指定管道缓冲区的大小,单位512字节。 …\u003c/p\u003e"
June 16, 2011
c语言socket编程常用函数2
"\u003cp\u003e\u003cstrong\u003esocket()函数\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e#include\n#include int socket(int domain, int type, int protocol);\ndomain应该设置为”AF_INET”,和上面数据结构 struct sockaddr_in 中一样,或者其它的type 告诉内容是SOCK_STREAM还是SOCK_DGRAM 类型,或者其它的.\nprotocol 设置为0.\u003c/p\u003e\n\u003cp\u003esocket()只是返回以后在系统调用中可能用到的socket描述符,或者错误的时候返回-1.全局变量errno中将存储返回的错误值.\u003c/p\u003e\n\u003cp\u003e=====================\n\u003cstrong\u003ebind() 函数\u003c/strong\u003e\n一旦你有一个套接字,你可能要将套接字和机器上的一定的端口关联起来。 ( 如果你想用 listen() 来侦听一定端口的数据,这是必要一步 –MUD 告 诉你说用命令 “telnet x.y.z 6969” 。 ) 如果你只想用 connect() ,那么这个步骤没有必 要 。\n但是无论如何,请继续读下去。\u003c/p\u003e\n\u003cp\u003e这里是系统调用 bind() 的大概:\u003c/p\u003e\n\u003cp\u003e#include\n#include int bind(int …\u003c/p\u003e"
June 16, 2011
c语言socket编程笔记1
"\u003cblockquote\u003e\n\u003cp\u003estruct sockaddr {\nunsigned short sa_family; // 地址家族,Af_XXX\nchar sa_data[14]; // 14字节协议地址\n};\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003esa_family 能够是各种各样的类型,但是在这篇文章中都是”AF_INET” 。 sa_data 包含套接字中的目标地址和端口信息。\n这好像有点不明智。\u003c/p\u003e\n\u003cp\u003e=====================================\u003c/p\u003e\n\u003cp\u003e为了处理 struct sockaddr,程序员创造了一个并列的结构:\nstruct sockaddr_in (“in” 代表 “Internet”)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003estruct sockaddr_in {\nshort int sin_family; //通讯类型(同struct sockadd中的sa_family一样可设置为 AF_INET )\nstruct in_addr sin_addr; //Internet 地址(结构体见下,网络字节顺序,储存 4 字节的 IP 地址)\nunsigned short int sin_port; //端口(网络字节顺序)\nunsigned …\u003c/p\u003e\u003c/blockquote\u003e"
June 15, 2011
Ping 出现:TTL expired in transit
"\u003cp\u003e今天发现电信送的一条固定IP地址出现问题,查确认属于是他们私自更改了我们的IP地址.电话通知电信大客经理…在下午接通知,已经改好!\n我觉得还是自已测试一下,不能太相信别人的话,因此我通知他们稍等下.\n1、我先PING了一下IP地址,结果发现:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eC:\\Documents and Settings\\xm_dengwh\u0026gt;ping 218.xxx.xxx.xxx (这里是我们的IP地址)\u003c/p\u003e\n\u003cp\u003ePinging 218.xx.xx.xx with 32 bytes of data:\u003c/p\u003e\n\u003cp\u003eReply from 218.85.151.173: TTL expired in transit.\nReply from 218.85.151.173: TTL expired in transit.\nReply from 218.85.151.173: TTL expired in transit.\nReply from 218.85.151.173: TTL expired in transit.\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e需要注意的是: 我的IP地址:218.xxx.xxx.xxx和218.85.151.173不同.\u003c/p\u003e\n\u003cp\u003e不是正常 …\u003c/p\u003e"