欢迎光临
梦想从学习开始!

Socket报文和端口测试工具的开发| 小熊测试

本文主要介绍 Socket报文和端口测试工具的开发| 小熊测试,小熊希望对大家的学习或者工作具有一定的参考学习价值,在测试领域有所提升和发展。

  因为自己经常做Socket开发,经常要调试和维护多个服务器端和客户端的通信、报文数据等,网上的工具都是功能简单,用的不爽,所以一直都想自己写一个。

  年底不忙了,终于写了一个,提供给大家使用,源码可以随便使用和修改,欢迎多提意见,让这个工具更易用,方便Socket编程开发人鱼。主要的功能如下:

  1.建立Socket测试服务器端和测试客户端,并向其他端发送或接受报文数据,支持自动发送和自动应答,支持UDP和TCP;

  2.录入的IP地址和端口等参数数据进行本地XML序列化,下次自动打开。(这个是我需要的,不用每次都录入各种IP地址端口了);

  3.接受或发送的报文数据,可以直接保存在日志文件当中,便于离线分析。

  4.服务器端,可以查看接入的各个连接信息;

  5.支持AscII和16进制的数据发送和接收显示。

您现在正在阅读的是由小熊分享邦为您整理的Socket报文和端口测试工具的开发| 小熊测试。
  由于界面要同时支持TCP和UDP的数据通信,所以编写了两个接口IServer和IClient,便于界面和通信层分开。

public interface IServer

{

//初始化

void Init(string serverIp, int port);

//从服务器端给某个连接发送数据

void Send(string connId, byte[] data, int length);

//监听

int Listen();

//得到当前的连接

List<IConnection> GetConnectionList();

//Socket事件

event ReceivedHandler OnDataReceived;

event SocketErrorHandler OnSocketError;

void Close();

}

为了保存参数数据,所以构造了一个SocketInfo类,对应客户端和服务器端,然后将这个集合序列化到XML文件中。

序列化的代码如下:

[Serializable]

public class SocketInfo

{

public string Name { get; set; }

//Server端或客户端类型

public string Type { get; set; }

//16进制格式或AscII

public string Format { get; set; }

public string ServerIp { get; set; }

public int Port { get; set; }

//TCP或UDP

public string Protocol { get; set; }

//报文数据

public string Data {get;set;}

//是否自动发送或接收数据

public Boolean IsAuto {get;set;}

public SocketInfo()

{

Format = "AscII";

Protocol = "Tcp";

Port = 8890;

ServerIp = "127.0.0.1";

Data = "请录入测试数据";

}

}

  客户端的报文和服务器端的报文数据存放在Client.log和Server.log两个文件当中.主要是借助了Log4net的配置实现的.

<log4net>

<root>

<level value="ALL" />

<appender-ref ref="RollingFileAppender" />

</root>

<appender name="ClientLogFileAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="client.log"/>

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

<appendToFile value="true" />

<rollingStyle value="Size" />

<maxSizeRollBackups value="3" />

<maximumFileSize value="2MB" />

<staticLogFileName value="true" />

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="记录时间:%date 日志:%message%newline" />

</layout>

</appender>

<logger name="SocketTool.ClientForm">

<level value="DEBUG" />

<appender-ref ref="ClientLogFileAppender" />

</logger>

<appender name="ServerLogFileAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="server.log"/>

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

<appendToFile value="true" />

<rollingStyle value="Size" />

<maxSizeRollBackups value="3" />

<maximumFileSize value="2MB" />

<staticLogFileName value="true" />

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="记录时间:%date 日志:%message%newline" />

</layout>

</appender>

<logger name="SocketTool.ServerForm">

<level value="DEBUG" />

<appender-ref ref="ServerLogFileAppender" />

</logger>

</log4net>

 
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小熊分享邦(www.xxfxb.com),希望大家能坚持软件测试之路,谢谢。

赞(0) 打赏
未经允许不得转载:小熊分享邦 » Socket报文和端口测试工具的开发| 小熊测试

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏