ctcp调试助手源代码.docx
- 文档编号:24349634
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:24
- 大小:21.40KB
ctcp调试助手源代码.docx
《ctcp调试助手源代码.docx》由会员分享,可在线阅读,更多相关《ctcp调试助手源代码.docx(24页珍藏版)》请在冰豆网上搜索。
ctcp调试助手源代码
c#tcp调试助手源代码
以下是winformtcp调试助手源代码,调试通过,可进行简单应用
usingSystem;
using
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
using
//添?
加6新?
的?
名?
称?
空?
间?
引皔用?
usingSystem.10;
usingSystem.Net;
using
usingSystem.Threading;
//usingSystem.Timers;
namespacerCP调獭?
试?
助。
手?
{publicpartialclassForm1:
Form
/*****月服^务?
^^端?
*******/
privateintserve_portNum=13;
privateTcpListenerserve_listener=null;
//服务?
器+与?
客丨户§机0之间?
的?
连?
接6状痢?
态?
privateboolbserve_Connected=false;
//服务?
器+侦[听瑈线?
程]
privateThreadtserve_AcceptMsg=null;
//网?
络?
访?
问0的?
基U础?
数簓据丫流i?
privateNetworkStreamnStream_serve=null;
//创洹?
建••读0取?
器+
privateTextReadertReader_serve=null;
//创洹?
建••编括?
写’器+privateTextWriterwReader_serve=null
/*****客[户§^端?
*******/
privateintClient_portNum=13;
//客丨户§端?
连?
接6
privateTcpClientclient_client=null;
//客丨户§机。
与服务?
器+之?
间?
的?
连?
接6状痢?
态?
privateboolbclient_Connected=false;
//客丨户§机。
侦[听瑈线程1
privateThreadtclient_AcceptMsg=null;
//网?
络?
访?
问0的?
基d础?
数簓据丫流i?
privateNetworkStreamnStream_client=null;
//创洹?
建••读0取?
器+
privateTextReadertReader_client=null;
//创洹?
建••编括?
写’器+privateTextWriterwReader_client=null
//接o收?
>0发瓦?
送丨数簓据丫池?
长O度0
privateconstintbytelength=1024;
〃服务?
器+接o收?
池?
byte[]serve_rec_buff=newbyte[bytelength];
//服务?
器+发厉?
送丨池?
byte[]serve_send_buff=newbyte[bytelength];
//客丨户§端?
接o收?
池?
byte[]client_rec_buff=newbyte[bytelength];
//客丨户§端?
发厉?
送丨池?
byte[]client_send_buff=newbyte[bytelength];
publicForm1()
{
InitializeComponent();
rb_xs_zf.Checked=true;
rb_fs_zf.Checked=true;
rb_fwq.Checked=true;
cb_fs_cf.Checked=false;
btn_Qidong.Enabled=false;
〃timer1=new
timer1.Stop();
timer2.Stop();
}
privatevoidtextBox1_TextChanged(objectsender,EventArgse)
{
privatevoidlabel2_Click(objectsender.EventArgse)
{
}
privatevoidtextBox1_TextChanged_1(objectsender,EventArgse)
{
}
//服务?
器+启?
动一
privatevoidQidong_btn_Click(objectsender,EventArgse)
{
serve_portNum=int.Parse(tbx_lport.Text);
stringstrlocalip=cBox_localip.Text;
IPAddresslocaladdr=null;
localaddr=IPAddress.Parse(strlocalip);
//listener=newTcpListener(strlocalip,serve_portNum);
〃IPAddresslocaladdr=host.AddressList[O];
//stringipAddress=host.AddressList[O].ToString();
〃tbx_Local_IP.Text=ipAddress;
serve_listener=newTcpListener(localaddr,serve_portNum);
lab_serve.Text="服务?
器+正y在d等台?
待鋣连?
接6.…";serve_listener.Start();
//创洹?
建••侦[听瑈线?
程]
tserve_AcceptMsg=newThread(newThreadStart(this.AcceptMessage));tserve_AcceptMsg.Start();
btn_Qidong.Enabled=false;
//客丨户§端?
连?
接6服务?
器+
privatevoidlianjie_btn_Click(objectsender.EventArgse)
{
stringhostName=tbx_servelP.Text;
Client_portNum=Convert.ToInt32(tbx_sport.Text);
try
{
client_client=newTcpClient(hostName,Client_portNum);
if(client_client.Connected)
{
//创洹?
建••侦[听瑈线?
程]
tclient_AcceptMsg=newThread(newThreadStart(this.Client_AcceptMessage));
tclient_AcceptMsg.Start();
btn_lianjie.Enabled=false;
lab_client.Text="ok!
?
客丨户§机。
连接6上?
服务?
器十:
阰"+hostName+,?
端?
口。
号?
:
阰
"+tbx_sport.Text;
}
}
catch
{
lab_client.Text="!
?
客丨户§机。
没?
有瓺连?
接6上?
服务?
器r阰"+hostName+,?
端?
口u号?
:
阰"+tbx_sport.Text;
}
}
//服务?
器r发厉?
送丨字?
符?
数簓据丫
publicvoidserve_sendstr(stringstrsend)
try
{
〃richTextBox2_KeyPress()和iAcceptMessage()
//都?
将?
向orichTextBox1写’字?
符?
?
可0能u访问e有瓺冲?
突?
?
//所u以?
?
需0要瘾多0线程[互Y斥a
lock(this)
{
tx_serve_rec.AppendText("服务?
器♦:
阰"+strsend+"\n");
//客丨户§机0聊天?
信?
息C写‘入?
网?
络?
流)?
?
以?
便?
服务?
器+接6收?
wReader_serve.WriteLine(strsend);
//清?
理元?
当獭?
前°缓o冲?
区?
数簓据丫,?
使?
所u有瓺缓o冲?
数簓据丫写’入?
基u础?
设E?
备?
wReader_serve.Flush();
}
}
catch
{
MessageBox.Show("无T法厉?
与?
客丨户§机。
通?
信?
!
");
}
}
//服务?
器+发厉?
送:
[字?
节。
数簓组哩?
数簓据丫
publicvoidserve_sendhex(stringInputString)
{
#region增?
加6字?
符?
处锔理元?
string[]HexStrSplit=lnputString.Split('');
intlen=HexStrSplit.Length;
byte[]arr=newbyte[len];
for(intii=0;ii { arr[ii]=Convert.ToByte(HexStrSplit[ii],16); } stringstrtem=""; for(intii=0;ii { strtem+=String.Format("0x{0: X2}",arr[ii]); } #endregion try { 〃richTextBox2_KeyPress()和iAcceptMessage() //都? 将? 向orichTextBox1写’字? 符? ? 可0能u访问e有瓺冲? 突? ? //所u以? ? 需0要瘾多0线程[互Y斥a lock(this) { tx_serve_rec.AppendText("服务? 器♦: 阰"+strtem+"\n"); //客丨户§机0聊天? 信? 息C写‘入? 网? 络? 流)? ? 以? 便? 服务? 器+接6收? nStream_serve.Write(arr,O,arr丄ength); //清? 理元? 当獭? 前°缓o冲? 区? 数簓据丫,? 使? 所u有瓺缓o冲? 数簓据丫写’入? 基u础? 设E? 备? //nStream_serve.Flush(); catch { MessageBox.Show('无T法厉? 与? 客丨户§机。 通? 信? ! "); } } //服务? 器+发厉? 送丨数簓据丫 privatevoidbutton1_Click(objectsender,EventArgse) { if(bserve_Connected) { if(cb_fs_cf.Checked==true) { timer1.Stop(); timer1.Interval=Convert.Tolnt32(tbx_fs_time.Text); timer1.Start(); } else { timer1.Stop(); if(rb_fs_zf.Checked==true) { serve_sendstr(tx_serve_send.Text); } elseif(rb_fs_hex.Checked==true) serve_sendhex(tx_serve_send.Text); } } } else { ? 信? 。 £"); MessageBox.Show('未’与? 客丨户§机。 建••立i? 连? 接6,? 不? 能口通 } } //定••时骸? 发厉? 送iprivatevoidontime(objectsender,EventArgse) { if(cb_fs_cf.Checked==true){ if(rb_fs_zf.Checked==true) { serve_sendstr(tx_serve_send.Text); } elseif(rb_fs_hex.Checked==true) { serve_sendhex(tx_serve_send.Text); elsetimer1.Stop(); } } privatevoidSave_SheZhi_btn_Click(objectsender,EventArgse) { } //退? 岀? //关? 闭? 窗洹? 体? 时骸? 断? 开a连? 接6,? 并@终? 止1线? 程1(辍? 否? 则o,? VS调獭? 试? 程[序。 将仍? 处锔于? 运? 行D状痢? 态? )? ? ? ? ? privatevoidbutton2_Click(objectsender,EventArgse) { try { serve」istener.Stop(); tserve_AcceptMsg.Abort(); } catch {} Close(); } privatevoidrb_fwq_CheckedChanged(objectsender,EventArgse) {privatevoidrb_khd_CheckedChanged(objectsender,EventArgse) } privatevoidForm1_Load(objectsender,EventArgse) { } privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse) { } //扫A? 描0本? 机uIP privatevoidbtn_localip_Click(objectsender,EventArgse) { StringhostName=Dns.GetHostName(); IPHostEntryhost; host=Dns.GetHostEntry(hostName); //intlength= stringsrttemp; //IPAddresslocaladdr=null; foreach(IPAddressipinhost.AddressList) { srttemp=ip.ToString(); if(srttemp.StartsWith("192.168.")) { //tbx_Local_IP.Text=srttemp; //localaddr=ip; cBox_localip.Text=srttemp; } btn_Qidong.Enabled=true; } //处锔理元猯ab或otext字? 符? 串? 文? 字? 显? 示? 的? 委-托狣, publicdelegatevoidLabTextDelgate(stringstrtext); //服务? 器+处锔理元猯ab文? 字? 显? 示? 的? 委-托狣调獭? 用? 函-数簓 publicvoidwstr_lab(stringstrtext) { lab_serve.Text=strtext; } //服务? 器+处锔理元? 服 务? 器+接o收? 文? 字? 显? 示? 的? 委-托狣调獭? 用? 函-数簓 publicvoidwstr_txt(string strtext) { 〃lab_serve.Text=strtext; tx_serve_rec.AppendText("客丨户§机d: 阰"+strtext+"\n"); } //客丨户§机。 处锔理元猯ab文? 字? 显? 示? 的? 委—托狣调獭? 用? 函—数簓 publicvoidwstr_lab_client( stringstrtext) { lab_client.Text=strtext; } //客丨户§机0处锔理N? 服 务? 器+接o收? 文? 字? 显? 示? 的? 委-托狣调獭? 用? 函-数簓 publicvoidwstr_txt_client( stringstrtext) 〃lab_serve.Text=strtext; tx_client_rec.AppendText("服务? 器十: 阰"+strtext+"\n"); } //处锔理元猼ext字? 节。 数簓组哩? 文? 字? 显? 示? 的? 委-托狣, publicdelegatevoidbyteTextDelgate(byte[]showbyte); //处锔理元? 服务? 器+接6收? 字? 节。 数簓组哩? 文? 字? 显? 示? 的? 委-托狣调獭? 用? 函-数簓 publicvoidwstr_hex(byte[]showbyte) { 〃lab_serve.Text=strtext; stringstrtem=""; 〃foreach(bytebteminshowbyte) 〃{ 〃strtem+=string.Format("0x{0,x2},btem"); 〃} for(inti=0;i { if(showbyte[i]==0) break; elsestrtem+=string.Format("0x{0,2: X}",showbyte[i]); } tx_serve_rec.AppendText("客丨户§机u: ^"'+strtem+"\n"); } //处锔理元? 客丨户§机0接6收字? 节0数簓组哩? 文? 字? 显? 示? 的? 委-托狣调獭? 用? 函-数簓 〃lab_serve.Text=strtext; stringstrtem=""; 〃foreach(bytebteminshowbyte) 〃{ 〃//strtem+=string.Format("0x{0,x2},btem"); 〃strtem+=string.Format("0x{0,2: X},btem"); 〃if(btem==0) //break; //} for(inti=0;i { if(showbyte[i]==0) break; else strtem+=string.Format("0x{0,2: X}",showbyte[i]); } tx_client_rec.AppendText("服务? 器十: 阰"+strtem+"\n"); } //服务? 器+侦1听瑈并C显? 示? 信? 息C publicvoidAcceptMessage() { //接6受酣? 客丨户§机0的连? 接。 请求。 TcpClientclient=serve_listener.AcceptTcpClient(); if(client! =null) { bserve_Connected=true; 〃this.lab_serve.Text="与? 客丨户§"+client.ToString()+"成e功建••立i? 连? 接6。 £: stringstrtem="与? 客丨户§"+client.ToString()+"成e功建••立i? 连? 接6。 £"; //lab_serve. LabTextDelgatewritelab=newLabTextDelgate(wstr_lab); this.Invoke(writelab,strtem); } nStream_serve=client.GetStream(); //nStream_serve.Read( //读0字? 节。 流i? tReader_serve=newStreamReader(nStream_serve); //tReader_serve.re //写’字? 节。 流i? wReader_serve=newStreamWriter(nStream_serve); stringsTemp;//临诡? 时骸? 存? 储洹? 读a取? 的? 字? 符? 串? while(bserve_Connected) { if(rb_xs_zf.Checked==true) { try { //nStream_serve=client.GetStream(); //读a字? 节。 流i? //tReader_serve=newStreamReader(nStream_serve); //连? 续? 从洙? 当獭? 前°流: ? 中D读d取? 字? 符? 串? 直士至0结0束? sTemp=tReader_serve.ReadLine(); if(sTemp.Length! =O) { 〃richTextBox2_KeyPress()和iAcceptMessage() //都? 将? 向orichTextBox1写’字? 符? ? 可0能u访问e有瓺冲? 突? ? //所u以? ? 需0要瘾多0线程[互Y斥a lock(this) { 〃tx_serve_rec.Text="客丨户§机阰"+sTemp+"\n"+tx_serve_rec.Text; 〃this.tx_serve_rec.lnvoke(newMethodlnvoker( 〃delegate{this.tx_serve_rec.AppendText("客丨户§机d: 阰"+sTemp+"\n");} //)); LabTextDelgatewritelab=newLabTextDelgate(wstr_txt); this」nvoke(writelab,sTemp); } } } catch { tserve_AcceptMsg.Abort(); MessageBox.Show("无T法厉? 与? 客丨户§机。 通? 信? 。 £"); } } elseif(rb_xs_hex.Checked==true)//读d取? 16进? 制? 数簓据Y并C显? 示? { try { //nStream_serve=client.GetStream(); //读0字? 节。 流i? //tReader_serve=newStreamReader(nStream_serve); //连? 续? 从洙? 当獭? 前°流: ? 中D读a取? 字? 符? 串? 直士至0结0束? //byte[]serve_rec_buff=newbyte[bytelength]; //sTemp=nStream_serve.Read(serve_rec_buff,0,bytelength); nStream_serve.Read(serve_rec_buff,0,serve_rec_buff.Length); if(serve_rec_buff.Length! =0) { 〃richTextBox2_KeyPress()和iAcceptMessage() //都? 将? 向orichTextBox1写’字? 符? ? 可0能口访问e有瓺冲? 突? ? //所u以? ? 需0要瘾多0线程[互Y斥a lock(this) { //tx_serve_rec.Te
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ctcp 调试 助手 源代码