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
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
(1) man不只可以用来查看SHELL命令,还可以查看系统调用函数,C库函数以及其他数据结构等等。
(2) man域的概念
$man date
会发现在第一行显示:
DATE(1) User Commands ......
以下以Fedora12发行版为例。
基本环境:
Fedora的完整安装盘已经包括了Qt开发环境,安装时注意选择安装Eclipse、C/C++开发和Qt开发的组件即可。如果是想添加功能,可以从Fedora的“添加/删除软件”程序里自行从软件库下载相关软件。
Qt Eclipse Integration for C++的安装:
参考:http://qt.nokia.com/devel ......
1. find
find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
$ find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作 ......
bash有两种输入模式vi模式和emacs模式,其中emacs是默认模式,而且操作起来也比vi模式要快捷。可以通过 set -o vi和set -o emacs来转换。
1.在命令历史中查找
强烈推荐使用 Ctrl+r, 这个键组合是反向增量查找消息历史。很好用。 比如你很久以前输入过某个命令如。 gcc -c -DKKT -
Dnnn 等等,一长串, ......