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))
相关文档:
如果是以tarball形式安装安装,去rar
网站下载相应版本的tarball。地址为
http://www.rarlab.com/
以3.8版本为例,如果是i386的平台,执行以下命令:
$wget http://www.rarlab.com/rar
/rarlinux-3.8.0.tar.gz
rar
软件不需要安装,直接解压到/usr/local下,以下操作需要有root
权限。
#tar zxvf rarlinux-3.8.0 ......
最近通读了一下软件调试的艺术(The art of debugging with gdb,ddd,eclipse),总体来说是一般入门级的调试用书。我个人感觉对初学gdb的有一定的作用,有愧于题目art。我简单的做个总结,供入门参考。主要讲了gdb的常用命令以及常见bug的调试。
常用命令:
1. 暂停机制
a.断点的使用
& ......
编译并安装Busybox 1.15.3到L inux2.6.11.1,启动系统
进入shell 提示: ./ash : can't access tty; job control turned off.
分析发现
/etc/inittab文件中有一行:
::askfirst:/bin/ash
这在busybox 1.2.1运行正常
修改为
tty1::askfirst:/bin/ash
后正常. ......
Linux服务器虽然相对来说比Windwos服务器要稳定与安全。但是稳定安全的Linux服务器,仍然离不开合理的及时的维护工作。
一、让软件包保持最新的版本
Linux服务器的软件包也如同Windwos操作系统的补丁一样在不断的升级。Linux服务器软件的升级主要有两个目的。一是增强软件的功能,二是解决一些已知的安全漏洞。如 ......