linux 截图程序源码,Linux下C语言实现C/S模式编程(附源码,运行截图)
由标题可知,这篇博客主要讲如何用C语言实现一个C/S模式的程序。主要功能:时间回送。客户机请求,服务器发回时间,客户机进行同步。
废话不多说,下面直接贴出源代码。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
void client_process(int connfd);
int main(int argc, char *argv[])
{
int ret;
int listenfd;
int connfd;
struct sockaddr_in srvaddr;
struct sockaddr_in cliaddr;
socklen_t addrlen;
listenfd = socket(AF_INET, SOCK_STREAM, 0);
if (listenfd == -1) {
perror("socket");
exit(EXIT_FAILURE);
}
srvaddr.sin_family = AF_INET;
srvaddr.sin_port = htons(8888);
srvaddr.sin_addr.s_addr = htonl(INADDR_ANY);
ret = bind(listenfd, (struct sockaddr *)&srvaddr, sizeof(srvaddr));
if (ret == -1) {
perror("bind");
exit(EXIT_FAILURE);
}
ret = listen(listenfd, 5);
if (ret == -1) {
perror("listen");
exit(EXIT_FAILURE);
}
while (1) {
memset(&cliaddr, 0, sizeof(cliaddr));
addrlen = sizeof(cliaddr);
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &addrlen);
if (connfd != -1) {
printf("a new client is comming\n");
client_process(connfd);
printf("disconnect\n");
close(connfd);
} else
perror("accept");
}
close(listenfd);
}
void client_process(int connfd)
{
int ret;
char buf[4096];
while (1) {
memset(buf, 0, sizeof(buf));
strcpy(buf, "Kevin@TimeServer $ ");
ret = write(connfd, buf, strlen(buf) + 1);
if (ret == -1) {
perror("write");
return;
}
memset(buf, 0, sizeof(buf));
ret = read(connfd, buf, sizeof(buf));
if (ret > 0) {
if (strcmp(buf, "time\r\n") == 0) {
time_t t;
memset(buf, 0, sizeof(buf));
strcpy(buf, "Kevin@TimeServer $ ");
ret = write(connfd, buf, strlen(buf) + 1);
if (ret == -1) {
perror("write");
return;
}
time(&t);
strcpy(buf, ctime(&t));
ret = write(connfd, buf, strlen(buf) + 1);
if (ret == -1) {
perror("write");
return;
}
}
} else if (ret == -1) {
perror("read");
return;
} else
return;
}
}
1.建立源程序,输入源代码。
2.打开一个终端,编译运行程序。编译程序:gcc cs.c 运行程序:./a.out
3.新开一个终端,输入:telnet localhost 8888
主窗口效果如下:
4.在子窗口中输入:time
子窗口显示如下:
5.关闭子窗口,主窗口显示:连接断开。
效果如下:
好吧,程序就讲到这里了。
注:我使用的是Ubuntu操作系统。
linux 截图程序源码,Linux下C语言实现C/S模式编程(附源码,运行截图)相关推荐
- c语言 程序延时 校准,Windows下C语言API修改系统时间,附自动校准时间源码
C语言Windows时钟的结构体如下: typedef struct _SYSTEMTIME { WORD wYear; /*年*/ WORD wMonth; ...
- 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结【文末附源码】
微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 文章目录 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 1️⃣ 写在前面 2️⃣ 蓝牙连接流程 3 ...
- C语言小游戏大全,C语言贪吃蛇小游戏(附源码)
一.C语言小游戏大全,C语言贪吃蛇小游戏(附源码) 贪吃蛇小游戏源码和更多C语言课设项目小游戏源码免 费 下 载 链 接 如下: c语言项目课设小游戏源码资料压缩包.zip-C文档类资源-CSDN下载 ...
- Linux 应用程序 嵌汇编,Linux下C语言嵌汇编
Using Assembly Language in Linux. Intel和AT&T汇编语法差异: 1.前缀: Intel汇编寄存器和立即数无需前缀.后者寄存器前缀为%,立即数前缀为$. ...
- Windows 和 Linux 应用程序从上到下调用层次比较
刚毕业的时候,做了将近一年的Window下的程序开发,主要用MFC,那是也不明白程序在操作系统角度从上到下的整个调用层次.遇到调用库函数,不明白,就查MSDN,每个月1500行代码左右,那时以为这就是 ...
- linux查看程序的快捷键,linux操作系统的快捷键及命令讲解
GNU是为Linux提供免费软件支持的工具;红帽与乌邦图都是Linux的一个版本. Linux登入时登入名为root的是最高级别 Linux系统中的文件夹: /:根目标 bin:二进制可执行文件 li ...
- linux的程序员计算器,linux中的计算器
windows系统安装时会自带计算器,在cmd中运行calc即可打开.那么linux系统中有没有计算器呢?答案是肯定的. linux下的图形计算器 linux系统一般也会默认安装一个图形界面的计算器, ...
- 三星linux应用程序,三星推出Linux on DeX应用程序,正式发布高端手机新品W2019
描述 Canonical日前在官方博客上发文称,三星宣布推出了Linux on DeX项目.通过三星的DeX,用户能在旗舰级Galaxy设备上获得大屏的体验. 官方表示,Linux on DeX支持开 ...
- 天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)
首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...
最新文章
- dct变换的主要优点有哪些_网络拓扑结构有哪些类型 不同类型网络拓扑结构优缺点介绍【图文】...
- 【JulyEdu-Python基础】第 8 课:Python第三方库
- 《深入理解Android:Telephony原理剖析与最佳实践》一1.1 智能手机的系统结构
- 播放视频比较好的框架
- CSS3的几个变形案例……
- php 百分比,小数2位
- 深度学习资料整理(深度神经网络理解)
- top 监控系统内存、进程的资源占用情况
- linux服务器上已安装R 用户下载R包,服务器R语言包下载、R包离线安装
- 苹果4如何添加时间插件_【苹果搞机】苹果设备越狱后的第一步如何添加软件源...
- 轻松制作趣味配图,这个小程序真会玩
- 触屏查看大图(可以缩放)
- 数值计算及matlab实现,用MATLAB实现数值计算
- mySQL首行缩进快捷键_word段首如何缩进两个字符
- CNI网络插件之flannel
- 七大行星排列图片_八大行星图片欣赏
- kivy开发android启动器,从kivy启动android播放器
- 雷蛇鼠标:单机偶尔变成双击
- 80psi等于多少kpa_压力单位换算(如psi)
- android 7.0 2g,LG美国定制机曝光:2GB内存,搭载安卓7.0系统