关闭

sock_ev——linux平台socket事件框架(基于数据报的测试程序)

标签: inet域linuxLinuxLINUXsocketSocket框架网络编程
1273人阅读 评论(2) 收藏 举报
分类:

上一篇已经做过注释,这一篇直接上代码

/***************************************************************************************
****************************************************************************************
* FILE		: server_test.cc
* Description	: 
*			  
* Copyright (c) 2012 by Liu Yanyun(E-mail:liuyun827@foxmail.com). All Rights Reserved.
*            Without permission, shall not be used for any commercial purpose
* 
* History:
* Version		Name       		Date			Description
   0.1		Liu Yanyun		2012/12/03		Initial Version
   
****************************************************************************************
****************************************************************************************/


#include "socket.h"
#include "log_trace.h"
#include "socket_addr.h"
#include "socket_base.h"
#include "event_loop.h"
#include <iostream>

using namespace std;

int main()
{ 
  Socket *ser = Socket::create();
  bool ret = ser->open("dgram://unix.domain.ipc.1");

  char buf[100] = {0};
  char addr[128] = {0};

  ser->recv(buf, sizeof(buf), addr);

  printf("from:%s;buf:%s\n", addr, buf);
  
  ser->send(buf, strlen(buf), addr);

  Socket::destroy(ser);
  
  return 0;
}


/***************************************************************************************
****************************************************************************************
* FILE		: client_test.cc
* Description	: 
*			  
* Copyright (c) 2012 by Liu Yanyun(E-mail:liuyun827@foxmail.com). All Rights Reserved.
*            Without permission, shall not be used for any commercial purpose
* 
* History:
* Version		Name       		Date			Description
   0.1		Liu Yanyun		2012/12/03		Initial Version
   
****************************************************************************************
****************************************************************************************/


#include "socket.h"
#include "log_trace.h"
#include "socket_addr.h"
#include "socket_base.h"
#include <iostream>

using namespace std;

int main()
{
  Socket *clt = Socket::create();
  bool ret = clt->open("dgram://unix.domain.ipc.2");
  ret = ret;

  char buf[100] = {"hello"};
  char addr[128] = {0};

  clt->send(buf, strlen(buf), "dgram://unix.domain.ipc.1");

  clt->recv(buf, sizeof(buf), addr);

  printf("from:%s;buf:%s\n", addr, buf);

  sleep(2);
  
  Socket::destroy(clt);
  
  return 0;
}
起两个shell结果为:
./server_test
from:dgram://unix.domain.ipc.2;buf:hello

./client_test
from:dgram://unix.domain.ipc.1;buf:hello


上面是使用unix域套接字进程测试;修改地址为ip:port形式可以转为inet域。

对于数据包式的通信,只需要各自打开自身的地址,然后就可以根据地址收发数据了;而在上一篇中对于字节流方式服务器端要先打开进行监听,然后客户端去连接,服务器端接受连接以后才可以进行通信。


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

基于Hadoop的大数据平台实施记——整体架构设计

大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星。我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰。好像一夜之间我们就从互联网时代跳跃进了大...
  • javastart
  • javastart
  • 2016-02-16 08:24
  • 3290

基于DES加密的TCP聊天程序

近闻多大牛写博客已出书,虽才疏学浅,不求著书立说,但求面试官一问,答曰:吾于CSDN发表数篇博文,多热评,又选得《网络安全》一课,于图书馆觅得《网络安全高级软件编程技术》一书,兴趣饶然,乃写此文,有连...
  • u014004264
  • u014004264
  • 2016-03-20 12:55
  • 1252

接口自动化测试TestNG框架环境搭建 (1)

TestNG是什么? TestNG是一个功能强大的测试框架,是Junit的一个增强版本,Junit在使用多年之前,TestNG才生效存在。NG 代表“下一代”。 TestNG框架提供了以下功能和解答...
  • a357339414
  • a357339414
  • 2016-07-28 15:44
  • 4187

sock_ev——linux平台socket事件框架(基于字节流的测试程序)

注:转载请注明出处! 由于工作与学习的需要,写了一个socket的事件处理框架,在公司写的已经使用了一段时间,下班后回家抽出时间又重写了一下,并进行了完善,起名为:sock_ev; 最近正在调试...
  • gdutliuyun827
  • gdutliuyun827
  • 2012-12-04 19:38
  • 1242

sock_ev——linux平台socket事件框架(uri地址的解析)

在第一篇中,已经说明,传递的socket地址采取以下形式: stream://192.168.2.10:8080 dgram://192.168.2.10:8080 stream://unix....
  • gdutliuyun827
  • gdutliuyun827
  • 2012-12-05 20:31
  • 1388

sock_ev——linux平台socket事件框架(event loop)

上一篇我们封装了三种事件监听方式,如果分别提供给客户端使用,有点不方便,也不利于统一管理;我们再封装一层EventLoop。 /***********************************...
  • gdutliuyun827
  • gdutliuyun827
  • 2012-12-26 18:54
  • 3009

sock_ev——linux平台socket事件框架(logTrace)

写代码要有调试log,采用syslog的输出;一般会输出到"/var/log/messages"   /**********************************************...
  • gdutliuyun827
  • gdutliuyun827
  • 2012-12-04 21:10
  • 1343

Linux平台音频测试程序

一个音频测试程序,录音并播放。代码如下:
  • subfate
  • subfate
  • 2017-05-31 18:28
  • 696

linux程序设计——数据报(第十五章)

15.5    数据报 在本章中,重点介绍了如何编写与客户之间维持连接的应用程序.使用面向连接的TCP套接字来完成这一工作.但在某些情况下,在程序中花费时间来建立和维持一个套接字连接是不必要的. 早先...
  • yiranant
  • yiranant
  • 2015-07-26 23:54
  • 569

linux平台中socket通信程序的编写

文档目的 博主在搭建好的地面与空间通信的模拟通信网络中,AGW1GW2B之间能够顺利ping通,现在要测试是否能建立TCP连接,开始想直接在B上安装apache服务器,然后A上的浏览器输入B的ip地...
  • buptlrw
  • buptlrw
  • 2014-12-13 09:47
  • 546