epoll示例程序——客户端
源码:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
//这里配置服务器的ip地址和端口号
#define SERVER_LISTEN_PORT 3557
#define SERVER_HOST "192.168.1.202"#define MAX_BUF_SIZE 1024
#define INVALID_SOCKET -1//返回值的宏定义,在开发linux环境时,用0表示成功
#define RES_SUC 0
#define RES_FAIL -1int main()
{//创建一个客户端socketint client_socket = INVALID_SOCKET;client_socket = socket(AF_INET, SOCK_STREAM, 0);if(INVALID_SOCKET == client_socket){printf("[main] create client socket fail!\n");return RES_FAIL;}//创建一个服务器端的地址结构体,用于存储socket要连接的服务器地址信息struct sockaddr_in serv_addr;serv_addr.sin_family = AF_INET;serv_addr.sin_addr.s_addr = inet_addr(SERVER_HOST); // 指定服务程序的ip地址serv_addr.sin_port = htons(SERVER_LISTEN_PORT); //指定服务程序的端口//与服务器程序建立tcp连接if(connect(client_socket, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) == RES_FAIL){printf("[main] connect to server %s:%d fail!\n", SERVER_HOST, SERVER_LISTEN_PORT);return RES_FAIL;}printf("[main] connect to server %s:%d suc!\n", SERVER_HOST, SERVER_LISTEN_PORT);//发送一条消息char write_buf[MAX_BUF_SIZE];memset(write_buf, '\0', MAX_BUF_SIZE);snprintf(write_buf, MAX_BUF_SIZE, "hello");if(write(client_socket, write_buf, MAX_BUF_SIZE) <= 0){printf("[main] write msg into socket:%d fail! content:[%s]!\n", client_socket, write_buf);return RES_FAIL;}printf("[main] send msg to server %s:%d suc!\n", SERVER_HOST, SERVER_LISTEN_PORT);//等待服务端的返回消息char read_buf[MAX_BUF_SIZE];memset(read_buf, '\0', MAX_BUF_SIZE);if (read(client_socket, read_buf, MAX_BUF_SIZE) > 0){printf("[main] recv responsed msg from socket:%d suc! content: %s\n", client_socket, read_buf);return RES_SUC;}else{printf("[main] recv responsed msg from socket:%d fail!\n", client_socket);return RES_FAIL;}}
按照如下方式编译和执行:
[root@clsserv202 echoserver]# gcc echo_client.c -o echo_client
[root@clsserv202 echoserver]# ./echo_client
[main] connect to server 192.168.1.202:3557 suc!
[main] send msg to server 192.168.1.202:3557 suc!
[main] recv responsed msg from socket:3 suc! content:[hello]!
epoll示例程序——客户端相关推荐
- epoll示例程序——服务端
源码: #include <sys/epoll.h> #include <stdio.h> #include <stdlib.h> #include <str ...
- 0729------Linux网络编程----------使用 select 、poll 和 epoll 模型 编写客户端程序
1.select 模型 1.1 select 函数原型如下,其中 nfds 表示的描述符的最大值加1(因为这里是左闭右开区间),中间三个参数分别表示要监听的不同类型描述符的集合,timeout用来表示 ...
- 单点登录cas综述之cas4.2.7服务端+cas客户端+示例程序+环境搭建说明-陈杰
1环境搭建以及把示例程序跑起来 1.1 安装jdk1.8 1.2 下载tomcat8+cas4.2.7服务端war+cas客户端war 1.2.1下载经过配置的Tomcat8和本教程配套文件 1.2 ...
- ASP.NET AJAX示例程序:实现IDragSource和IDropTarget接口将商品拖放至购物车中
本文来自<ASP.NET AJAX程序设计--第II卷:客户端Microsoft AJAX Library相关>第9章第3节. 9.3 示例程序:实现IDragSource和IDropTa ...
- MxGraph从入门到精通之1:运行HelloWorld示例程序
简介 MxGraph包括了一个JavaScript编写的客户端软件,以及一系列各个语言写的后端. 客户端是一个图形组件,它需要一个web服务器把相关的文件传给客户端或者直接从本地文件系统运行起来(如下 ...
- 在ASP.NET AJAX中使用应用程序服务和本地化(4):示例程序:读取、修改并保存用户个性化信息...
本文来自<ASP.NET AJAX程序设计 第II卷:客户端Microsoft AJAX Library相关>的第五章<应用程序服务和本地化>. 让我们通过编写一个完整的示例程 ...
- moxy json介绍_MOXy作为您的JAX-RS JSON提供程序–客户端
moxy json介绍 最近,我发布了如何利用EclipseLink JAXB(MOXy)的JSON绑定来创建RESTful服务. 在本文中,我将演示在客户端利用MOXy的JSON绑定有多么容易. M ...
- MOXy作为您的JAX-RS JSON提供程序–客户端
最近,我发布了如何利用EclipseLink JAXB(MOXy)的JSON绑定来创建RESTful服务. 在本文中,我将演示在客户端利用MOXy的JSON绑定有多么容易. MOXy作为您的JAX-R ...
- TCP socket心跳包示例程序
TCP socket心跳包示例程序_xqhrs232的专栏-CSDN博客_setsockopt 心跳包 原文地址::TCP socket心跳包示例程序_神奕的专栏-CSDN博客_tcp心跳包 相关文章 ...
最新文章
- redmine plugin
- Selenium3自动化测试——15.调用Javascript进行滚动条控制
- 【面试招聘】算法岗通关宝典 | 社招一年经验,字节5轮、阿里7轮
- JavaScript中带有示例的Math.round()方法
- c语言写天气预报程序,微信小程序实现天气预报功能
- 数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列
- Bootstrap 条纹进度条
- bzoj1304 [CQOI2009]叶子的染色 dfs+树形dp
- 帝国cms 留言板html,帝国CMS留言板加字段和验证码
- 用c语言枚举计算坐标,来个c++枚举有效范围计算器
- 阿里面试失败后,一气之下我图解了Java中18把锁
- 【机器学习】机器学习中无意识偏见的分析与预防
- The7强大多功能模板Var9.16.0+基于WordPress
- 算法练习, 红白花放置方法数
- ImageWarping变形算法研究---反距离加权插值(IDW)
- 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
- 抢占国内射频前端主序市场,「慧智微」的打法是推可重构射频前端架构
- 你是人间的四月天---林徽因
- 美丽天天秒源码之会员分润代码分享
- 计算机应用基础闲情赋答案,计算机应用基础网络统考试卷 答案.doc
热门文章
- day15 java接口的基础语法
- matlab 拉普拉斯锐化函数_机器视觉 03.3 频域高通滤波(锐化)
- python os如何创建文件夹_Python怎样创建文件夹,怎样删除文件夹
- vuex状态持久化_Vuex持久化存储之vuex-persist
- esxi 5.5运行linux拯救模式,启用Esxi 5.5 SSH 功能
- printf打印结构体_工程师:这道题80%初学者都没做对!你确定搞懂结构体内存对齐了?...
- w ndows2000,华塑CAE软件简介
- 数据结构折半查找例题_数据结构第9章例题与答案
- jenkins+pytest+allure接口自动化测试(windows环境)
- js 判断剪切板内容是否为text_Python+selenium自动化之EC模块之text_to_be_present_in_element...