Linux中客户端向服务端读取时间的简单实现
客户端的连接的主要步骤有初始化套接字(socket),连接服务端(connect),接收/发送(send/recv),关闭(close)等。
服务端的连接的主要步骤有初始化套接字(socket),邦定(bind),监听(listen),接收/发送(send/recv),关闭(close)等。
由于在Linux中所有设备都可以看作文件,接收/发送(send/recv)也可以用write/read来代替。
下面是服务端service.c的代码:
#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#define HOSTNAMELEN 40 //主机名长度
#define BUFLEN 1024
#define PORT 13000 //端口
int main(int argc, char *argv[])
{
int rc;
int s1;
int sockfd;
char buf[BUFLEN+1];
char* pc;
struct sockaddr_in local;
struct hostent* hen;
//主机
hen = gethostbyname("127.0.0.1");
if (!hen)
{
perror("couldn't resolve host name");
exit(1);
}
//初始化
memset(&local, 0, sizeof(local));
local.sin_family = AF_INET;
local.sin_port = htons(PORT);
memcpy(&local.sin_addr.s_addr, hen->h_addr_list[0], hen->h_length);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
{
perror("socket() failed");
exit(1);
}
//邦定
rc = bind(sockfd,(struct sockaddr *)&local,sizeof(local));
if (rc<0)
{
perror("bind() failed");
exit (1);
}
//监听
rc=listen(sockfd,5);
if (rc)
{
perror("listen() failed");
exit(1);
}
//接收
s1=accept(sockfd,NULL,NULL);
if(s1<0)
{
perror("accpet() failed");
exit(1);
}
//取得时间
time_t ti;
ti=time(NULL);
char str[100];
sprintf(str,ct
相关文档:
//CUdp.h
#ifndef MY_CUDP
#define MY_CUDP
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
class CUdp{
public:
CUdp(const char* destIP, unsigned short localPort, unsigned short destPort);
CUdp(unsigned int destIP, unsig ......
1. 下载内核源码的压缩包 linux-2.6.30.5.tar.bz2,有56MB大小
2. 解压出来后这个内核源码的文件夹linux-2.6.30.5,有332MB大小
3. 查看编译所需的最新版本的软件依赖的话,在Documentation/Changes文件里
4. make mrproper
确保内核源文件中没有旧的.o文件与依赖关系
5 ......
前 言
Linux是一种开放源代码的自由操作系统。自它诞生以来,在全世界Linux爱好者的共同努力下,其性能不断完善,具有稳定、安全、网络负载力强、占用硬件资源少等技术特点,得到了迅速推广和应用。它已发展成为当今世界的主流操作系统之一。
除了作为桌面系统使用外,Linux在服务器领域更是得到了广泛 ......
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 ......
# 安装tidy
yum install tidy libtidy-devel
# 给php添加tidy模块
wget http://pecl.php.net/get/tidy-1.2.tgz
tar -xvzf tidy-1.2.tgz
cd tidy-1.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --libdir=/usr/lib64
make
make install
echo "extension="tidy.so"" ......