一个简单的时间获取客户端——服务器程序
2015-05-20 13:07
399 查看
操作系统:Linux
语言:C
之前知识储备:TCP/IP编程基础知识,C++/C编程经验
描述:之前自己学过一些TCP/IP知识,师兄推荐于是下定决心用两个星期时间狂啃UNIX网络编程卷一,励志要把这本书上的代码都自己敲一边。万万没想到,第一个程序就让自己内心狂躁不已。第一段程序调起来确实需要时间,不过只要弄好第一个,下面的就好弄了。
遇到困难及解决方法:
1、头文件问题,这些都可以在网上找到,如果配置出错,一定要多查两次,一般都能在网上查到;
2、写完程序之后,由于13号端口默认情况下是关闭的,所以客户端程序一直出现连接不上的问题,服务器端改成sudo运行就行了;
3、客户端参数没有设置问题,客户端是需要传入服务器IP地址作为参数的,我是用自己的电脑做客户端和服务器端,所以输入参数是127.0.0.1。
客户端shell运行语句:
服务器端shell运行语句:
运行结果:
客户端代码:
服务器端代码:
语言:C
之前知识储备:TCP/IP编程基础知识,C++/C编程经验
描述:之前自己学过一些TCP/IP知识,师兄推荐于是下定决心用两个星期时间狂啃UNIX网络编程卷一,励志要把这本书上的代码都自己敲一边。万万没想到,第一个程序就让自己内心狂躁不已。第一段程序调起来确实需要时间,不过只要弄好第一个,下面的就好弄了。
遇到困难及解决方法:
1、头文件问题,这些都可以在网上找到,如果配置出错,一定要多查两次,一般都能在网上查到;
2、写完程序之后,由于13号端口默认情况下是关闭的,所以客户端程序一直出现连接不上的问题,服务器端改成sudo运行就行了;
3、客户端参数没有设置问题,客户端是需要传入服务器IP地址作为参数的,我是用自己的电脑做客户端和服务器端,所以输入参数是127.0.0.1。
客户端shell运行语句:
服务器端shell运行语句:
运行结果:
客户端代码:
#include "../lib/unp.h" #include "../apue.2e/include/apue.h" int main(int argc, char **argv){ int sockfd, n; char recvline[MAXLINE + 1]; struct sockaddr_in servaddr; if(argc != 2) err_quit("usage:a.out<IPaddress>"); if((sockfd = socket(AF_INET, SOCK_STREAM, 0))<0) err_sys("socket error"); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(13); if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr)<=0) err_quit("inet_pton error for %s", argv[1]); if(connect(sockfd, (SA *) &servaddr, sizeof(servaddr))<0) err_sys("connect error"); while((n = read(sockfd, recvline, MAXLINE))>0){ recvline = 0; if(fputs(recvline, stdout) == EOF) err_sys("fputs error"); } if(n < 0) err_sys("read error"); exit(0); }
服务器端代码:
#include "../lib/unp.h" #include "../apue.2e/include/apue.h" #include <time.h> int main(int argc, char **argv){ int listenfd, connfd; struct sockaddr_in servaddr; char buff[MAXLINE]; time_t ticks; listenfd = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(13); bind(listenfd, (SA *)&servaddr, sizeof(servaddr)); listen(listenfd, LISTENQ); for(;;){ connfd = accept(listenfd, NULL, NULL); ticks = time(NULL); snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks)); write(connfd, buff, strlen(buff)); close(connfd); } }
相关文章推荐
- 一个简单的时间获取客户端/服务器程序
- 《UNIX网络编程》第一章——一个简单的时间获取客户端/服务器程序
- 一个简单的TCP 客户端时间获取程序 ipv4/ipv6
- 一个简单的时间获取客户端程序
- 一个简单Spring+Hibernate+Struts2.0+Ajax整合获取客户端IP、URL和请求时间
- 一个简单的TCP客户端时间获取程序
- 一个简单的时间获取服务器程序
- 一个简单的PHP获取客户端的IP函数
- 服务器端获取客户端动态添加的表格行数据的一个简单示例
- 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间
- 一个简单的时间获取客户程序
- Unix网络编程:从入门到放弃——一个简单的时间获取程序
- 简单的时间/日期客户端&服务器程序
- UNIX网络编程1.5一个简单的时间获取服务器程序1.6客户服务器程序索引表
- 简介(1)-概述、一个简单的时间获取客户程序
- 一个简单的Android客户端从服务器端获取json数据并解析的实现代码
- 一个简单客户端获取IP,国家,城市,省份的代码
- 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间
- 写了一个简单的第三方库,功能包括包括转化时间,计算动态行高,获取缓存文件在沙盒的路径
- UNIX网络编程学习(3)--简单时间获取服务器程序