c#tcp调试助手源代码_第1页
c#tcp调试助手源代码_第2页
c#tcp调试助手源代码_第3页
c#tcp调试助手源代码_第4页
c#tcp调试助手源代码_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c# tcp调试助手源代码 以下是winform tcp调试助手源代码,调试通过,可进行简单应用 usi ng System; usi ng System.Collectio ns.Ge neric; usi ng System.Comp onen tModel; usi ng System.Data; usi ng System.Drawi ng; usi ng Syste m.L i nq; usi ng System.Text; usi ng System.Wi ndows.Forms; / - ?加6 新?的?名?称?空?间?引皔用? usi ng System.IO; usi ng

2、System.Net; usi ng System.Net.Sockets; usi ng System.Thread ing; us ing System.Timers; namespaceTCP 调獭?试?助。手? public partial class Form1 : Form /*?端 ?*/ private int serve_portNum=13 ; private TcpListener serve_listener =null ; 訓 冬?器+与?客丨户机。之间?的?连?接6状痢?态? private bool bserve_C onn ected = false H-二?器

3、十侦听瑈线?程 private Thread tserve_AcceptMsg =n ull /网?络?访?问e的?基n础?数簓据丫流i ? private Networkstream n Stream_serve =n ull /创洹?建读d取?器+ private TextReader tReader_serve =n ull /创洹?建编括?写器+ private TextWriter wReader_serve = null /* 客户 端?*/ private int Client_portNum = 13; /客丨户端?连?接6 private TcpClie nt clie nt

4、_clie nt =n ull /客丨户机 辽器+之?间?的?连?接6状痢?态? private bool bclie nt_Conn ected = false /客丨户机。侦听瑈线程i privateThread tclie nt_AcceptMsg =n ull /网?络?访?问e的?基n础?数簓据丫流i ? private Networkstream n Stream_clie nt=n ull /创洹?建读d取?器+ privateTextReader tReader_client =null ; /创洹?建编括?写器+ privateTextWriter wReader_clien

5、t =null ; /接6收?、C发厉?送丨数簓据丫池?长O度0 private const int bytelength = 1024; .卜?器+接6收?池? byte serve_rec_buff = new byte bytelength; .卜?器*发?送丨池? byte serve_send_buff = new byte bytelength; /客丨户端?接6收?池? byte client_rec_buff = new byte bytelength; /客丨户端?发厉?送丨池? byte client_send_buff =new byte bytelength; publ

6、ic Form1() In itializeComp onen t(); rb_xs_zf.Checked =true ; rb_fs_zf.Checked =true ; rb_fwq.Checked =true ; cb_fs_cf.Checked =false; btn _Qido ng.E nabled =false timer1= new System.Wi ndows.Forms.Timer(); timer1.Stop(); timer2.Stop(); private void textBox1_TextChanged( object sender, EventArgs e)

7、private void label2_Click( object sender, EventArgs e) private void textBox1_TextChanged_1( object sender.EventArgs e) /V器+启?动一 private void Qidong_btn_Click( object sender, EventArgs e) serve_portNum =int .Parse(tbx_lport.Text); stri ng strlocalip = cBox_localip.Text; IPAddress localaddr =null ; lo

8、caladdr = IPAddress.Parse(strlocalip); /liste ner = new TcpListe ner(strlocalip, serve_portNum); /IPAddress localaddr = host.AddressListO; /string ipAddress = host.AddressListO.ToString(); tbx_Local_IP.Text = ipAddress; serve_liste ner =new TcpListe ner(localaddr, serve_portNum); lab_serve.Text =服 务

9、?器+正y在0等台?待鋣连?接6.; serve_liste ner.Start(); /创洹?建侦听瑈线?程 tserve_AcceptMsg =new Thread (new Threadstart (this .AcceptMessage); tserve_AcceptMsg.Start(); btn_Qidong.Enabled =false ; /客丨户端?连?受训卜力?器+ private void lianjie_btn_Click(object sender,EventArgs e) stri ng hostName = tbx_servelP.Text; Clie nt_po

10、rtNum =Con vert .Tol nt32(tbx_sport.Text); try clie nt_clie nt =n ewTcpClie nt(hostName, Clie nt_portNum); if (client_client.Connected) /创洹?建侦听瑈线?程 tclient_AcceptMsg =new Thread (new ThreadStart (this .Client_AcceptMessage); tclie nt_AcceptMsg.Start(); btn_lianjie.Enabled =false ; lab_client.Text= o

11、k !?客丨户 机。连?接 6 上邙 备?器*:阰+ hostName + , ?端 ?口。号?:阰+ tbx_sport.Text; catch lab_client.Text= ! ?客丨户机。没有瓺连?接6上?眾 冬?器+:阰+ hostName + , ?端 ?口。号?:阰+ tbx_sport.Text; /;?器+发厉?送丨字?符?数簓据丫 public void serve_sendstr( string strsend) try richTextBox2_KeyPress()和 iAcceptMessage() /都?将?向crichTextBoxI 写字?符?, ?可0能u访

12、问e有瓺冲?突?,? /所u 以?, ?需0要癮多0线程互Y斥a lock ( this ) tx_serve_rec.AppendText(,主 务?器十:阰+ strsend +n); /客丨户机。聊?信?息写入?网?络?流i ?, ?以?便? - ?器+接6 收? wReader_serve.WriteLi ne(strse nd); /清?理元?当獭?前缓o冲?区?数簓据丫,?使?所。有瓺缓o冲?数簓据丫写 入?基u础?设E?备? wReader_serve.Flush(); catch MessageBox.Show(无 T法厉?与?*i.产.?信?!); / ?器+发厉?送:字?节

13、。数簓组哩?数簓据丫 public void serve_sendhex( string InputString) #region增?加6 字?符?处鋦理元? string HexStrSplit = InputString.Split(); int len = HexStrSplit.Length; byte arr = new byte len; for ( int ii = 0; ii arr.Length; ii+) arrii =Con vert .ToByte(HexStrSplitii, 16); string strtem =; for ( int ii = 0; ii arr

14、.Length; ii+) strtem+=String .Format( 0 x0:X2 , arrii); #en dregi on try richTextBox2_KeyPress()和 iAcceptMessage() /都?将?向crichTextBox1 写字?符?, ?可0能u访问e有瓺冲?突?,? /所u 以?, ?需0要癮多0线程互Y斥a lock ( this ) tx_serve_rec.AppendText(.報 务?器:阰+ strtem +n); /客丨户机。聊?信?息写入?网?络?流i ?, ?以?便? ; ?器+接6 收? n Stream_serve.Wri

15、te(arr,0,arr.Le ngth); /清?理元?当獭?前缓o冲?区?数簓据丫,?使?所。有瓺缓o冲?数簓据丫写 入?基u础?设E?备? n Stream_serve.Flush(); catch MessageBox.Show(无 T法厉?与? i, $ |.ii产.?信?!); /J器+发厉?送丨数簓据丫 private void butt on 1_Click(object sen der, Eve ntArgs e) if (bserve_Connected) if (cb_fs_cf.Checked = true ) timer1.Stop(); timer1 .Interv

16、al =Convert .ToInt32(tbx_fs_time.Text); timer1.Start(); else timer1.Stop(); if (rb_fs_zf.Checked = true ) serve_se ndstr(tx_serve_se nd.Text); else if (rb_fs_hex.Checked = true ) serve_se ndhex(tx_serve_se nd.Text); else ?信?。); MessageBox.Show(未与?客丨户机。建立 i?连?接6,?不? TH /定时骸?发厉?送丨 private void ontime(

17、 object sender,EventArgs e) if (cb_fs_cf.Checked = true ) if (rb_fs_zf.Checked = true ) serve_se ndstr(tx_serve_se nd.Text); else if (rb_fs_hex.Checked = true ) serve_se ndhex(tx_serve_se nd.Text); else timer1.Stop(); private void Save_SheZhi_btn_Click( object sender,EventArgs e) /退?岀? /关?闭?窗洹?体 ?时骸

18、?断?开a连?接6,?并C终?止 1线?程1(辍?否?则o, ?VS调獭?试? 程序o将仍?.D ?运?行。状痢?态?)?? ?? ? private void butt on 2_Click(object sen der, Eve ntArgs e) try serve_liste ner.Stop(); tserve_AcceptMsg.Abort(); catch Close(); private void rb_fwq_CheckedChanged( object sender,EventArgs e) private void rb_khd_CheckedChanged( objec

19、t sender,EventArgs e) private void Form1_Load( object sender, EventArgs e) EventArgs e) private void comboBox1_SelectedIndexChanged( object sender, /扫A ?描0本?机uIP private void btn_localip_Click( object sender, EventArgs e) String hostName = Dns.GetHostName(); IPHostEntry host; host = Dns.GetHostEntry

20、(hostName); / int length = host.AddressList.Length; string srttemp; /IPAddress localaddr = null; cBox_localip.Items.Clear(); foreach (IPAddress ip in host.AddressList) srttemp = ip.ToString(); cBox_localip.Items.Add(srttemp); if (srttemp.StartsWith( 192.168. ) /tbx_Local_IP.Text = srttemp; /localadd

21、r = ip; cBox_localip.Text = srttemp; btn_Qidong.Enabled =true ; /处鋦理元猯ab或dtext字?符?串?文?字?显?示?的?委-托狣, public delegate void LabTextDelgate( string strtext); /二?器+处鋦理元猯ab文?字 ?显?示?的?委-托狣调獭?用?函-数簓 public void wstr_lab( stringstrtext) lab_serve.Text = strtext; /;?器+处鋦理元?儿:;:-?器+接6收?文?字?显?示?的?委-托狣调獭?用 ?函-数簓

22、 public void wstr_txt(stringstrtext) /lab_serve.Text = strtext; tx_serve_rec.AppendText(客丨户 机 d:阰+ strtext +n); /客丨户机。处鋦理元猯ab文?字?显?示?的?委-托狣调獭?用?函-数簓 public void wstr_lab_client(string strtext) lab_clie nt.Text = strtext; /客丨户机0处鋦理N? ?器+接6 收?文 ?字?显?示?的?委-托狣调獭?用?函-数簓 public void wstr_txt_client( strin

23、g strtext) lab_serve.Text = strtext; tx_clie nt_rec.Appe ndText( 见乂?器+:阰+ strtext +n); /处鋦理元猼ext字?节。数簓组哩?文?字?显?示?的?委-托狣, public delegate void byteTextDelgate( byte showbyte); /处鋦理元?- ?器+接6收?字?节。数簓组哩?文?字?显?示?的?委-托狣调獭 数簓 public void wstr_hex( byte showbyte) /lab_serve.Text = strtext; string strtem=; f

24、oreach(byte btem in showbyte) / strtem+=stri ng.Format(” 0 x0,x2,btem); for ( int i = 0; i showbyte.Length; i+) if (showbytei = 0) break; else strtem +=string .Format( 0 x0,2:X, showbytei); tx_serve_rec.Appe ndText(客丨户 机 d:阰 + strtem +n); /处鋦理元?客丨户机。接0收 ?节。数簓组哩?文?字?显?示?的?委-托狣调獭?用?函-数 簓 public void w

25、str_hex_client( byte showbyte) lab_serve.Text = strtext; string strtem =; /foreach (byte btem in showbyte) / /strtem += stri ng.Format(” 0 x0,x2,btem); / strtem += stri ng.Format(0 x0,2:X,btem); / if (btem = 0) / break; / for ( int i = 0; i showbyte.Length; i+) if (showbytei = 0) break; else strtem

26、+=string .Format( 0 x0,2:X, showbytei); tx_client_rec.AppendText(服 齐?器十:阰+ strtem+ n); /;?器+侦1听瑈并C显?示?信?息C public void AcceptMessage() /接6受酣?客丨户机0的连?接6请?求6 TcpCIie nt clie nt = serve_liste ner.AcceptTcpCIie nt(); if (client != null ) bserve_Connected =true ; this.Iab_serve.Text =与?客丨户 + clie nt.ToSt

27、ri ng() + 成e功建 立i ?连?接6o; string strtem =与?客丨户 + client.ToString() +成e功建立 i ?连? 接 6o; /lab_serve. LabTextDelgate writelab =new LabTextDelgate(wstr_lab); this .Invoke(writelab, strtem); nStream_serve = client.GetStream(); /nStream_serve.Read( /读0字?节。流i? tReader_serve =new StreamReader(nStream_serve);

28、 /tReader_serve.re /写字?节。流i? wReader_serve =new StreamWriter (nStream_serve); string sTemp; /临诡?时骸?存?储洹?读a取?的?字?符?串? while (bserve_Connected) if (rb_xs_zf.Checked= true ) try /nStream_serve = client.GetStream(); /读0字?节。流i? tReader_serve = new StreamReader( nStream_serve); /连?续?从洙?当獭?前流:?中D读a取?字?符?串?

29、直士至0结0束 sTemp = tReader_serve.ReadLine(); if (sTemp.Length != 0) richTextBox2_KeyPress()和 iAcceptMessage() /都?将?向drichTextBox1写字?符?, ?可e能u访问e有瓺冲?突?, ? /所u 以?, ?需0要癮多a线程互Y斥a lock ( this ) /tx_serve_rec.Text = 客丨户机阰+ sTemp + n + tx_serve_rec.Text; / this.tx_serve_rec.Invoke(new MethodInvoker( /delegat

30、e this.tx_serve_rec.Appe ndText( 客丨户机阰匕 + sTemp + n ); /); LabTextDelgate writelab =newLabTextDelgate(wstr_txt); this .Invoke(writelab, sTemp); catch tserve_AcceptMsg.Abort(); MessageBox.Show(无 T 法厉?与?总:1?信?。 ); else if (rb_xs_hex.Checked= true )/ 读 a 取?16 进?制 ?数簓据 Y并 C 显?示? try n Stream_serve = cli

31、e nt.GetStream(); /读a字?节。流i? tReader_serve = new StreamReader( nStream_serve); /连?续?从洙?当獭?前流:?中D读a取?字?符?串?直士至a结a束 byte serve_rec_buff = new bytebytele ngth; /sTemp = n Stream_serve.Read(serve_rec_buff,0,bytele ngth); n Stream_serve.Read(serve_rec_buff,0,serve_rec_buff.Le ngth); if (serve_rec_buff.Le

32、ngth != 0) richTextBox2_KeyPress()和 iAcceptMessage() /都?将?向drichTextBox1写字?符?, ?可e能u访问e有瓺冲?突?, ? /所u 以?, ?需0要癮多a线程互Y斥a lock ( this ) /tx_serve_rec.Text = 客丨户机阰+ sTemp + n + tx_serve_rec.Text; /this.tx_serve_rec .In voke( new Methodi nvoker( /delegatethis.tx_serve_rec.Appe ndText(客丨户机 d:阰 + sTemp + n

33、 ); /); byteTextDelgate writelab =n ewbyteTextDelgate(wstr_hex); thisnvoke(writelab, serve_rec_buff); catch tserve_AcceptMsg.Abort(); MessageBox.Show(无 T法厉?与?3,龙订小?信?。 ); n Stream_serve = clie nt.GetStream(); MessageBox.Show( 邛 齐?器+侦听瑈与?显?示?线?程退?岀?); /禁?止1当獭?前的?发厉?送与?接6收? clie nt.Close(); serve_list

34、e ner.Stop(); /客丨户端?侦听瑈并C显?示?信?息C /20160605 接 6收?hex 字?符?不 ?稳0定 public void Client_AcceptMessage() bclient_Connected = true ; /绑悒?定客丨户机。的?连?接6流i? nStream_client = client_client.GetStream(); /读0字?节。流i? tReader_client =new StreamReader(nStream_client); /tReader_serve.re /写字?节。流i? wReader_client =new S

35、treamWriter (nStream_client); string sTemp; /临诡?时骸?存?储洹?读a取?的?字?符?串? while (bclient_Connected) if (rb_xs_zf.Checked = true ) try /读a字?节。流i ? /连?续?从洙?当獭?前流:?中D读a取字?符?串?直士至a结a束 sTemp = tReader_client.ReadLine(); if (sTemp.Length != 0) /需o要癮多a线程互丫斥a new lock ( this ) LabTextDelgate writelab = LabTextDe

36、lgate(wstr_txt_clie nt); thisnvoke(writelab, sTemp); catch tserve_AcceptMsg.Abort(); MessageBox.Show(无 T法厉?与? ::?信?。 ); else if (rb_xs_hex.Checked = true ) / 读 a 取?16 进?制?数簓据 Y并 C 显?示? try int read num = 0; lock ( this ) Array .Clear(client_rec_buff, 0, client_rec_buff.Length); readnum = nStream_cli

37、ent.Read(client_rec_buff, 0, clie nt_rec_buff.Le ngth); if (readnum != 0) /需o要癮多a线?程互Y斥a lock (this ) byteTextDelgate writelab =new byteTextDelgate(wstr_hex_clie nt); this .Invoke(writelab, client_rec_buff); catch tserve_AcceptMsg.Abort(); MessageBox.Show(无 T法厉?与?;二?信?。 ); n Stream_clie nt = clie nt

38、_clie nt.GetStream(); MessageBox.Show( 客丨户机。侦听瑈与显?示?线?程退?岀?); /禁?止1当獭?前的?发厉?送与?接6收? clie nt_clie nt.Close(); /客丨户端?发厉?送丨数簓据丫 private void btn_client_send_Click(object sender, EventArgs e) if (bclient_Connected) if (cb_fs_cf.Checked = true ) timer2.Stop(); timer2.lnterval =Convert .Tolnt32(tbx_fs_tim

39、e.Text); timer2.Start(); else timer2.Stop(); if (rb_fs_zf.Checked = true ) clie nt_se ndstr(tx_clie nt_se nd.Text); else if (rb_fs_hex.Checked = true ) clie nt_se ndhex(tx_clie nt_se nd.Text); else MessageBox.Show(未与?:二?器+建立 i ?连?接6, ?不?i:i沁?信? ); /客丨户机。连?续?发厉?送丨 private void ontime2( object sender, EventArgs e) if (cb_fs_cf.Checked = true ) if (rb_fs_zf.Checked = true ) client_s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论