源码:

#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示例程序——客户端相关推荐

  1. epoll示例程序——服务端

    源码: #include <sys/epoll.h> #include <stdio.h> #include <stdlib.h> #include <str ...

  2. 0729------Linux网络编程----------使用 select 、poll 和 epoll 模型 编写客户端程序

    1.select 模型 1.1 select 函数原型如下,其中 nfds 表示的描述符的最大值加1(因为这里是左闭右开区间),中间三个参数分别表示要监听的不同类型描述符的集合,timeout用来表示 ...

  3. 单点登录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 ...

  4. ASP.NET AJAX示例程序:实现IDragSource和IDropTarget接口将商品拖放至购物车中

    本文来自<ASP.NET AJAX程序设计--第II卷:客户端Microsoft AJAX Library相关>第9章第3节. 9.3 示例程序:实现IDragSource和IDropTa ...

  5. MxGraph从入门到精通之1:运行HelloWorld示例程序

    简介 MxGraph包括了一个JavaScript编写的客户端软件,以及一系列各个语言写的后端. 客户端是一个图形组件,它需要一个web服务器把相关的文件传给客户端或者直接从本地文件系统运行起来(如下 ...

  6. 在ASP.NET AJAX中使用应用程序服务和本地化(4):示例程序:读取、修改并保存用户个性化信息...

    本文来自<ASP.NET AJAX程序设计 第II卷:客户端Microsoft AJAX Library相关>的第五章<应用程序服务和本地化>. 让我们通过编写一个完整的示例程 ...

  7. moxy json介绍_MOXy作为您的JAX-RS JSON提供程序–客户端

    moxy json介绍 最近,我发布了如何利用EclipseLink JAXB(MOXy)的JSON绑定来创建RESTful服务. 在本文中,我将演示在客户端利用MOXy的JSON绑定有多么容易. M ...

  8. MOXy作为您的JAX-RS JSON提供程序–客户端

    最近,我发布了如何利用EclipseLink JAXB(MOXy)的JSON绑定来创建RESTful服务. 在本文中,我将演示在客户端利用MOXy的JSON绑定有多么容易. MOXy作为您的JAX-R ...

  9. TCP socket心跳包示例程序

    TCP socket心跳包示例程序_xqhrs232的专栏-CSDN博客_setsockopt 心跳包 原文地址::TCP socket心跳包示例程序_神奕的专栏-CSDN博客_tcp心跳包 相关文章 ...

最新文章

  1. redmine plugin
  2. Selenium3自动化测试——15.调用Javascript进行滚动条控制
  3. 【面试招聘】算法岗通关宝典 | 社招一年经验,字节5轮、阿里7轮
  4. JavaScript中带有示例的Math.round()方法
  5. c语言写天气预报程序,微信小程序实现天气预报功能
  6. 数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列
  7. Bootstrap 条纹进度条
  8. bzoj1304 [CQOI2009]叶子的染色 dfs+树形dp
  9. 帝国cms 留言板html,帝国CMS留言板加字段和验证码
  10. 用c语言枚举计算坐标,来个c++枚举有效范围计算器
  11. 阿里面试失败后,一气之下我图解了Java中18把锁
  12. 【机器学习】机器学习中无意识偏见的分析与预防
  13. The7强大多功能模板Var9.16.0+基于WordPress
  14. 算法练习, 红白花放置方法数
  15. ImageWarping变形算法研究---反距离加权插值(IDW)
  16. 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
  17. 抢占国内射频前端主序市场,「慧智微」的打法是推可重构射频前端架构
  18. 你是人间的四月天---林徽因
  19. 美丽天天秒源码之会员分润代码分享
  20. 计算机应用基础闲情赋答案,计算机应用基础网络统考试卷 答案.doc

热门文章

  1. day15 java接口的基础语法
  2. matlab 拉普拉斯锐化函数_机器视觉 03.3 频域高通滤波(锐化)
  3. python os如何创建文件夹_Python怎样创建文件夹,怎样删除文件夹
  4. vuex状态持久化_Vuex持久化存储之vuex-persist
  5. esxi 5.5运行linux拯救模式,启用Esxi 5.5 SSH 功能
  6. printf打印结构体_工程师:这道题80%初学者都没做对!你确定搞懂结构体内存对齐了?...
  7. w ndows2000,华塑CAE软件简介
  8. 数据结构折半查找例题_数据结构第9章例题与答案
  9. jenkins+pytest+allure接口自动化测试(windows环境)
  10. js 判断剪切板内容是否为text_Python+selenium自动化之EC模块之text_to_be_present_in_element...