Linux Socket编程实例(一个Hello World程序)
在Linux下写了个小的socket程序,分为客户端和服务器端,服务端开一个端口(20000),做为一个daemon,等待客户的连接请求。一旦有客户连接(客户端的IP和端口号是不固定的),服务器端打印出客户端的IP地址和端口,并且向客户端发送欢迎信息和时间。
下面是服务端的代码(tcpserver.c),由于这只是个简单的程序,所以只用了单线程实现!新建server.c,内容如下:
/**
* Tcp Server program, It is a simple example only.
* zhengsh 200520602061 2
* when client connect to server, send a welcome message and timestamp in server.
*/
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <time.h>
#define SERVER_PORT 20000 // define the defualt connect port id
#define LENGTH_OF_LISTEN_QUEUE 10 //length of listen queue in server
#define BUFFER_SIZE 255
#define WELCOME_MESSAGE "welcome to connect the server. "
int main(int argc, char **argv)
{
int servfd,clifd;
struct sockaddr_in servaddr,cliaddr;
if ((servfd = socket(AF_INET,SOCK_STREAM,0)) < 0) //成功建立socket
{
printf("create socket error!\n");
exit(1);
}
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERVER_PORT);
servaddr.sin_addr.s_addr = htons(INADDR_ANY);
if (bind(servfd,(struct sockaddr*)&servaddr,sizeof(servaddr))
相关文档:
mkdir -p /usr/local/svn/to/bakcup
/usr/local/svn/bin/svnadmin hotcopy /usr/local/svn/repos/test /usr/local/svn/to/bakcup --clean-logs
详细请参考svn 手册:
http://wenku.baidu.com/view/7c4617791711cc7931b71655.html ......
1> 使用CDPATH设置 cd 命令的工作目录
[ramesh@dev-db ~]# pwd
/home/ramesh
[ramesh@dev-db ~]# cd mail
-bash: cd: mail: No such file or directory
[注意:在当前目录下寻找MAIL目录]
[ramesh@dev-db ~]# export CDPATH=/etc
[ramesh@dev-db ~]# cd mail /etc/mail  ......
首先,内存的大小在linux内核中的获知方法
1.通过bootloader 的 tag mem传入。
Setup.c 中的函数如下:
static int __init parse_tag_mem32(const struct tag *tag)
{
if (meminfo.nr_banks >= NR_BANKS) {
printk(KERN_WARNING
"Ignoring memory bank 0x%08x size %dKB\n",
tag->u.mem.start, tag->u.mem ......
中国最完整的sysctl.conf优化方案
网上关于sysctl.conf的优化方案有各种版本,大多都是抄来抄去的,让新人看了很迷茫。为解决此问题,经过两天的整理,查了N多资料,将大家常用的总结如下,很多默认的不需要修改的暂未涉及,今后将逐步把所有的项目都有个翻译、讲解、修改建议,如有修改,将以此文为准,其他地方的 ......