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

发表于:2013-11-22 11:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:冷月宫主    来源:51Testing软件测试网采编

  因为自己经常做Socket开发,经常要调试和维护多个服务器端和客户端的通信、报文数据等,网上的工具都是功能简单,用的不爽,所以一直都想自己写一个。
  年底不忙了,终于写了一个,提供给大家使用,源码可以随便使用和修改,欢迎多提意见,让这个工具更易用,方便Socket编程开发人鱼。主要的功能如下:
  1.建立Socket测试服务器端和测试客户端,并向其他端发送或接受报文数据,支持自动发送和自动应答,支持UDP和TCP;
  2.录入的IP地址和端口等参数数据进行本地XML序列化,下次自动打开。(这个是我需要的,不用每次都录入各种IP地址端口了);
  3.接受或发送的报文数据,可以直接保存在日志文件当中,便于离线分析。
  4.服务器端,可以查看接入的各个连接信息;
  5.支持AscII和16进制的数据发送和接收显示。
  由于界面要同时支持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 = "请录入测试数据";
}
}
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号