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心跳包 相关文章 ...
最新文章
- 配置nfs服务器出现的问题
- split命令--linux切割(拆分)文件
- php双写绕过,高并发下缓存与数据库双写不一致解决方案
- 全球及中国天然气终端销售市场产量预测及发展策略分析报告2021年版
- python基础教程:懒惰属性(延迟初始化)
- Leet Code OJ 118. Pascal's Triangle [Difficulty: Easy]
- java并发(3)ThreadLocal的使用及实现原理(实现原理)
- oracle catalog命令,使用Catalog命令注册RMAN备份集
- 【NOIP2013】【Luogu1983】车站分级(建图,拓扑排序)
- javaScript之函数,分支结构 ,循环结构(二)
- Camera ISP流程概述
- 第二届ATI获奖自动化测试工具介绍
- 408计算机及格要什么水平,2019考研计算机408难度水平?
- 西门子840d备份到u盘_西门子840D数控系统备份及恢复方法(三)
- 最详细Python打包exe教程,并修改图标,只需30秒
- 水果缺陷检测以草莓等级分类为例
- Science子刊: 类配对分析法揭示孤独症患者肠道菌群解毒功能受损
- 使用C语言产生正弦波数据
- 人生是一场独自的修行
- WinDbg+WMware+Vista
热门文章
- windows绕开强制更新
- 上网时间监控软件_电脑监控系统软件有哪些作用?主要功能有哪些?
- Manjaro下显卡相关的命令搜集
- Sublime text 2按Ctrl+`无法调出console的可能问题
- 破环计算机系统的案件量刑,破坏计算机信息系统罪如何定罪量刑
- 设计模式(二)--里氏替换原则(Java的继承规范)
- 无序数组求第k大的数 python_【python刷题】寻找数组中第K大/小的数
- efcore mysql坑,.net core 2.1 使用ef DBfirst 生成 实体映射遇到的坑 (Pomelo.EntityFrameworkCore.MySql 篇)...
- 编辑器图片上传 linux,summernote 富文本编辑器上传本地图片
- java手机大头_Java也强大: