LR11 socket通信测试简单分享1

简介:

前一段时间做一个转发工具压力测试,只是提供IP和端口,下面贴出来与大家分享,不足之处还请指正:
  整个脚本写法很简单,大体来说,分三个步骤:
  步骤1:建立到服务器端连接
  rc = lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=127.0.0.1:8808", LrsLastArg);
  注:rc=0则表示建立通讯成功
  步骤2:发送报文和接收报文
  lrs_send("socket0","buf0", LrsLastArg);//往socket0发送buf0的数据
  lrs_receive ("socket0","buf1",LrsLastArg); //将socket0发送返回的数据存放到buf1中
  步骤3:关闭连接
  lrs_close_socket("socket0");//关闭
  到此为止,socket通讯的单次的发送、接收报文基本没有什么问题了,完整源码如下:

define _EOF '#'

include "lrs.h"

Action()
{
char *recvbuf;
int recvlen=0;
int rc;
lr_start_transaction("Trans_socket");//事务
lrs_set_recv_timeout (60,0);//接收超时时间
lr_start_transaction("Conn_socket");
//RemoteHost处填入被测程序所在服务器IP rc = lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=127.0.0.1:8808", LrsLastArg);
lr_output_message("rc=%d",rc);
if (rc != 0 ) {
lr_end_transaction("Conn_socket", LR_FAIL);
lr_end_transaction ("Trans_socket", LR_FAIL);
return 0;
}
lr_end_transaction("Conn_socket", LR_PASS); //判断socket是否链接成功的事务
lr_rendezvous("集合点");
lrs_send("socket0","buf0", LrsLastArg);
lrs_receive ("socket0","buf1",LrsLastArg);
lrs_get_last_received_buffer ("socket0",&recvbuf,&recvlen);
//判断报文长度是否正确
if(recvlen==304)
lr_end_transaction("Trans_socket", LR_PASS);
else
lr_end_transaction ("Trans_socket", LR_FAIL); //判断返回信息的长度是否正确,recvlen处填入预期返回信息的长度
lrs_close_socket("socket0");
return 0;
}
  data.ws 是报文部分, buf0 100 ,100是指报文的长度,x表示是16进制

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
1月前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
|
3月前
|
网络协议 程序员 Python
揭秘Python网络编程:深入理解Socket通信
在当今信息时代,网络通信已经成为人们生活中不可或缺的一部分。而Python作为一种高效、易用的编程语言,自然也能够很好地支持网络编程和Socket通信。本文将介绍Python网络编程与Socket通信的相关知识,包括Socket通信模型、Socket编程接口、网络套接字等内容。
|
3月前
|
网络协议 开发者 Python
Python网络编程与Socket通信:连接世界的无限可能
在当今数字化时代,Python作为一种强大的编程语言,通过网络编程与Socket通信为我们打开了连接世界的无限可能。本文将深入探讨Python网络编程的基础知识、Socket通信的原理以及实际应用,帮助读者更好地理解并运用这一技术。
|
3月前
|
网络协议
【Netty 网络通信】Socket 通信原理
【1月更文挑战第9天】【Netty 网络通信】Socket 通信原理
|
5月前
|
存储 Cloud Native Linux
C++封装了socket通信类
C++封装了socket通信类
|
6月前
|
存储
14.10 Socket 套接字选择通信
对于网络通信中的服务端来说,显然不可能是一对一的,我们所希望的是服务端启用一份则可以选择性的与特定一个客户端通信,而当不需要与客户端通信时,则只需要将该套接字挂到链表中存储并等待后续操作,套接字服务端通过多线程实现存储套接字和选择通信,可以提高服务端的并发性能,使其能够同时处理多个客户端的请求。在实际应用场景中,这种技术被广泛应用于网络编程、互联网应用等领域。在服务端启动时,创建套接字并进行绑定,然后开启一个线程(称为主线程)用于监听客户端的连接请求。主线程在接收到新的连接请求后,会将对应的套接字加入一个数据结构(例如链表、队列、哈希表等)中进行存储。同时,主线程会将存储套接字的数据结构传递给
25 1
14.10 Socket 套接字选择通信
|
6月前
14.5 Socket 应用组播通信
组播通信是一种基于UDP协议的网络通信方式,它允许发送方将消息同时传递给多个接收方。在组播通信中,发送方和接收方都会加入一个共同的组播组,这个组播组对应一个特定的IP地址,所有加入该组播组的主机都能够接收到发送方发送的消息。组播通信可以有效地减少网络流量和网络负载,因为在传统的点对点通信方式下,每个消息都需要单独传输到每个接收方,而在组播通信中,每个消息只需要传输一次,就可以同时传递给多个接收方。在使用组播模式时,需要在套接字上使用`setsockopt()`函数来设置套接字的`IP_MULTICAST_IF`选项,指定本地主机的出站接口地址,用于发送组播数据包。此外,还可以设置`IP_ADD
67 0
14.5 Socket 应用组播通信
|
7月前
|
Java
Java的Socket进行通信
下面是一个使用Java的Socket进行通信的简单示例
|
22天前
|
网络协议 Unix Linux
Socket通信详细介绍1
Socket通信详细介绍
30 0