日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#Socket報文和端口測試工具的開發(fā)(提供源碼)

因為自己經(jīng)常做Socket開發(fā),經(jīng)常要調(diào)試和維護多個服務器端和客戶端的通信、報文數(shù)據(jù)等,網(wǎng)上的工具都是功能簡單,用的不爽,所以一直都想自己寫一個。

創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元荔波做網(wǎng)站,已為上家服務,為荔波各地企業(yè)和個人服務,聯(lián)系電話:13518219792

Socket測試工具   Socket測試工具源碼

年底不忙了,終于寫了一個,提供給大家使用,源碼可以隨便使用和修改,歡迎多提意見,讓這個工具更易用,方便Socket編程開發(fā)人魚。主要的功能如下:

1.建立Socket測試服務器端和測試客戶端,并向其他端發(fā)送或接受報文數(shù)據(jù),支持自動發(fā)送和自動應答,支持UDP和TCP;

2.錄入的IP地址和端口等參數(shù)數(shù)據(jù)進行本地XML序列化,下次自動打開。(這個是我需要的,不用每次都錄入各種IP地址端口了);

3.接受或發(fā)送的報文數(shù)據(jù),可以直接保存在日志文件當中,便于離線分析。

4.服務器端,可以查看接入的各個連接信息;

5.支持AscII和16進制的數(shù)據(jù)發(fā)送和接收顯示。

由于界面要同時支持TCP和UDP的數(shù)據(jù)通信,所以編寫了兩個接口IServer和IClient,便于界面和通信層分開。

 
 
 
 
  1. public interface IServer
  2.     {
  3.         //初始化
  4.         void Init(string serverIp, int port);
  5.         //從服務器端給某個連接發(fā)送數(shù)據(jù)
  6.         void Send(string connId, byte[] data, int length);
  7.         //監(jiān)聽
  8.         int Listen();
  9.         //得到當前的連接
  10.         List GetConnectionList();
  11.         //Socket事件
  12.         event ReceivedHandler OnDataReceived;
  13.         event SocketErrorHandler OnSocketError;
  14.         void Close();
  15.     }

為了保存參數(shù)數(shù)據(jù),所以構造了一個SocketInfo類,對應客戶端和服務器端,然后將這個集合序列化到XML文件中。

序列化的代碼如下:

 
 
 
 
  1. [Serializable]
  2.     public class SocketInfo
  3.     {
  4.         public string Name { get; set; }
  5.         //Server端或客戶端類型
  6.         public string Type { get; set; }
  7.         //16進制格式或AscII
  8.         public string Format { get; set; }
  9.         public string ServerIp { get; set; }
  10.         public int Port { get; set; }
  11.         //TCP或UDP
  12.         public string Protocol { get; set; }
  13.         //報文數(shù)據(jù)
  14.         public string Data {get;set;}
  15.         //是否自動發(fā)送或接收數(shù)據(jù)
  16.         public Boolean IsAuto {get;set;}
  17.         public SocketInfo()
  18.         {
  19.             Format = "AscII";
  20.             Protocol = "Tcp";
  21.             Port = 8890;
  22.             ServerIp = "127.0.0.1";
  23.             Data = "請錄入測試數(shù)據(jù)";
  24.         }
  25.     }
 
 
 
 
  1. public class MySerializer
  2.     {      
  3.         public static void Serialize(T value, string xmlFileName)
  4.         {
  5.             if (value == null)
  6.             {
  7.                 return;
  8.             }
  9.             XmlSerializer serializer = new XmlSerializer(typeof(T));
  10.             XmlWriterSettings settings = new XmlWriterSettings();
  11.             settings.Encoding = new UnicodeEncoding(false, false);
  12.             settings.Indent = false;
  13.             settings.OmitXmlDeclaration = false;
  14.             FileStream fs = new FileStream(xmlFileName, FileMode
  15.                 .OpenOrCreate);
  16.             serializer.Serialize(fs, value);
  17.             fs.Close();
  18.         }
  19.         public static T Deserialize(string xmlFileName)
  20.         {
  21.             if (string.IsNullOrEmpty(xmlFileName))
  22.             {
  23.                 return default(T);
  24.             }
  25.             XmlSerializer serializer = new XmlSerializer(typeof(T));
  26.             //XmlSerializer serializer = new XmlSerializer(typeof(ArrayList));
  27.             XmlReaderSettings settings = new XmlReaderSettings();
  28.             //settings.
  29.             FileStream fs = null;
  30.             try
  31.             {
  32.                 fs = new FileStream(xmlFileName, FileMode.Open);
  33.                 // Deserialize the content of the XML file to a Contact array 
  34.                 // utilizing XMLReader
  35.                 XmlReader reader = new XmlTextReader(fs);
  36.                 T contacts = (T)serializer.Deserialize(reader);
  37.                 return contacts;
  38.             }
  39.             catch (FileNotFoundException)
  40.             {
  41.                 // Do nothing if the file does not exists
  42.             }
  43.             finally
  44.             {
  45.                 if (fs != null) fs.Close();
  46.             }
  47.             return default(T);
  48.         }
  49.     }

客戶端的報文和服務器端的報文數(shù)據(jù)存放在Client.log和Server.log兩個文件當中.主要是借助了Log4net的配置實現(xiàn)的.

 
 
 
 
  1.         
  2.             
  3.             
  4.         
  5.         
  6.             
  7.             
  8.             
  9.             
  10.             
  11.             
  12.             
  13.             
  14.                 
  15.             
  16.         
  17.         
  18.             
  19.             
  20.         
  21.         
  22.             
  23.             
  24.             
  25.             
  26.             
  27.             
  28.             
  29.             
  30.                 
  31.             
  32.         
  33.         
  34.             
  35.             
  36.         
  37.        
  38.     

分享文章:C#Socket報文和端口測試工具的開發(fā)(提供源碼)
網(wǎng)址分享:http://www.5511xx.com/article/cdddcdd.html