c#tcp调试助手源代码.docx
《c#tcp调试助手源代码.docx》由会员分享,可在线阅读,更多相关《c#tcp调试助手源代码.docx(26页珍藏版)》请在冰豆网上搜索。
c#tcp调试助手源代码
c#tcp调试助手源代码
以下是winformtcp调试助手源代码,调试通过,可进行简单应用
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
//添?
加ó新?
的?
名?
称?
空?
间?
引皔用?
usingSystem.IO;
usingSystem.Net;
usingSystem.Net.Sockets;
usingSystem.Threading;
//usingSystem.Timers;
namespaceTCP调獭?
试?
助ú手?
{
publicpartialclassForm1:
Form
{
/*****服务?
端?
*******/
privateintserve_portNum=13;
privateTcpListenerserve_listener=null;
//服务?
器÷与?
客í户§机ú之?
间?
的?
连?
接ó状痢?
态?
privateboolbserve_Connected=false;
//服务?
器÷侦ì听瑈线?
程ì
privateThreadtserve_AcceptMsg=null;
//网?
络?
访?
问ê的?
基ù础?
数簓据Y流ⅰ?
privateNetworkStreamnStream_serve=null;
//创洹?
建¨读á取?
器÷
privateTextReadertReader_serve=null;
//创洹?
建¨编括?
写′器÷
privateTextWriterwReader_serve=null;
/*****客í户§端?
*******/
privateintClient_portNum=13;
//客í户§端?
连?
接ó
privateTcpClientclient_client=null;
//客í户§机ú与?
服务?
器÷之?
间?
的?
连?
接ó状痢?
态?
privateboolbclient_Connected=false;
//客í户§机ú侦ì听瑈线?
程ì
privateThreadtclient_AcceptMsg=null;
//网?
络?
访?
问ê的?
基ù础?
数簓据Y流ⅰ?
privateNetworkStreamnStream_client=null;
//创洹?
建¨读á取?
器÷
privateTextReadertReader_client=null;
//创洹?
建¨编括?
写′器÷
privateTextWriterwReader_client=null;
//接ó收?
、¢发ぁ?
送í数簓据Y池?
长¤度è
privateconstintbytelength=1024;
//服务?
器÷接ó收?
池?
byte[]serve_rec_buff=newbyte[bytelength];
//服务?
器÷发ぁ?
送í池?
byte[]serve_send_buff=newbyte[bytelength];
//客í户§端?
接ó收?
池?
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=newSystem.Windows.Forms.Timer();
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[0];
//stringipAddress=host.AddressList[0].ToString();
//tbx_Local_IP.Text=ipAddress;
serve_listener=newTcpListener(localaddr,serve_portNum);
lab_serve.Text="服务?
器÷正y在ú等台?
待鋣连?
接ó....";
serve_listener.Start();
//创洹?
建¨侦ì听瑈线?
程ì
tserve_AcceptMsg=newThread(newThreadStart(this.AcceptMessage));
tserve_AcceptMsg.Start();
btn_Qidong.Enabled=false;
}
//客í户§端?
连?
接ó服务?
器÷
privatevoidlianjie_btn_Click(objectsender,EventArgse)
{
stringhostName=tbx_serveIP.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!
?
客í户§机ú连?
接ó上?
服务?
器÷:
阰"+hostName+",?
端?
口ú号?
:
阰"+tbx_sport.Text;
}
}
catch
{
lab_client.Text="!
?
客í户§机ú没?
有瓺连?
接ó上?
服务?
器÷:
阰"+hostName+",?
端?
口ú号?
:
阰"+tbx_sport.Text;
}
}
//服务?
器÷发ぁ?
送í字?
符?
数簓据Y
publicvoidserve_sendstr(stringstrsend)
{
try
{
//richTextBox2_KeyPress()和íAcceptMessage()
//都?
将?
向òrichTextBox1写′字?
符?
,?
可é能ü访?
问ê有瓺冲?
突?
,?
//所ù以?
,?
需è要癮多à线?
程ì互¥斥a
lock(this)
{
tx_serve_rec.AppendText("服务?
器÷:
阰"+strsend+"\n");
//客í户§机ú聊?
天?
信?
息¢写′入?
网?
络?
流ⅰ?
,?
以?
便?
服务?
器÷接ó收?
wReader_serve.WriteLine(strsend);
//清?
理え?
当獭?
前°缓o冲?
区?
数簓据Y,?
使?
所ù有瓺缓o冲?
数簓据Y写′入?
基ù础?
设Θ?
备?
wReader_serve.Flush();
}
}
catch
{
MessageBox.Show("无T法ぁ?
与?
客í户§机ú通?
信?
!
");
}
}
//服务?
器÷发ぁ?
送í字?
节ú数簓组哩?
数簓据Y
publicvoidserve_sendhex(stringInputString)
{
#region增?
加ó字?
符?
处鋦理え?
string[]HexStrSplit=InputString.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()和íAcceptMessage()
//都?
将?
向òrichTextBox1写′字?
符?
,?
可é能ü访?
问ê有瓺冲?
突?
,?
//所ù以?
,?
需è要癮多à线?
程ì互¥斥a
lock(this)
{
tx_serve_rec.AppendText("服务?
器÷:
阰"+strtem+"\n");
//客í户§机ú聊?
天?
信?
息¢写′入?
网?
络?
流ⅰ?
,?
以?
便?
服务?
器÷接ó收?
nStream_serve.Write(arr,0,arr.Length);
//清?
理え?
当獭?
前°缓o冲?
区?
数簓据Y,?
使?
所ù有瓺缓o冲?
数簓据Y写′入?
基ù础?
设Θ?
备?
//nStream_serve.Flush();
}
}
catch
{
MessageBox.Show("无T法ぁ?
与?
客í户§机ú通?
信?
!
");
}
}
//服务?
器÷发ぁ?
送í数簓据Y
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(bserve_Connected)
{
if(cb_fs_cf.Checked==true)
{
timer1.Stop();
timer1.Interval=Convert.ToInt32(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("未′与?
客í户§机ú建¨立ⅰ?
连?
接ó,?
不?
能ü通?
信?
。
£");
}
}
//定¨时骸?
发ぁ?
送í
privatevoidontime(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);
}
}
else
{
timer1.Stop();
}
}
privatevoidSave_SheZhi_btn_Click(objectsender,EventArgse)
{
}
//退?
出?
//关?
闭?
窗洹?
体?
时骸?
断?
开a连?
接ó,?
并¢终?
止1线?
程ì(辍?
否?
则ò,?
VS调獭?
试?
程ì序ò将?
仍?
处鋦于?
运?
行D状痢?
态?
)?
?
?
?
?
privatevoidbutton2_Click(objectsender,EventArgse)
{
try
{
serve_listener.Stop();
tserve_AcceptMsg.Abort();
}
catch
{}
Close();
}
privatevoidrb_fwq_CheckedChanged(objectsender,EventArgse)
{
}
privatevoidrb_khd_CheckedChanged(objectsender,EventArgse)
{
}
privatevoidForm1_Load(objectsender,EventArgse)
{
}
privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse)
{
}
//扫Α?
描è本?
机úIP
privatevoidbtn_localip_Click(objectsender,EventArgse)
{
StringhostName=Dns.GetHostName();
IPHostEntryhost;
host=Dns.GetHostEntry(hostName);
//intlength=host.AddressList.Length;
stringsrttemp;
//IPAddresslocaladdr=null;
cBox_localip.Items.Clear();
foreach(IPAddressipinhost.AddressList)
{
srttemp=ip.ToString();
cBox_localip.Items.Add(srttemp);
if(srttemp.StartsWith("192.168."))
{
//tbx_Local_IP.Text=srttemp;
//localaddr=ip;
cBox_localip.Text=srttemp;
}
}
btn_Qidong.Enabled=true;
}
//处鋦理え猯ab或òtext字?
符?
串?
文?
字?
显?
示?
的?
委ˉ托狣,
publicdelegatevoidLabTextDelgate(stringstrtext);
//服务?
器÷处鋦理え猯ab文?
字?
显?
示?
的?
委ˉ托狣调獭?
用?
函ˉ数簓
publicvoidwstr_lab(stringstrtext)
{
lab_serve.Text=strtext;
}
//服务?
器÷处鋦理え?
服务?
器÷接ó收?
文?
字?
显?
示?
的?
委ˉ托狣调獭?
用?
函ˉ数簓
publicvoidwstr_txt(stringstrtext)
{
//lab_serve.Text=strtext;
tx_serve_rec.AppendText("客í户§机ú:
阰"+strtext+"\n");
}
//客í户§机ú处鋦理え猯ab文?
字?
显?
示?
的?
委ˉ托狣调獭?
用?
函ˉ数簓
publicvoidwstr_lab_client(stringstrtext)
{
lab_client.Text=strtext;
}
//客í户§机ú处鋦理え?
服务?
器÷接ó收?
文?
字?
显?
示?
的?
委ˉ托狣调獭?
用?
函ˉ数簓
publicvoidwstr_txt_client(stringstrtext)
{
//lab_serve.Text=strtext;
tx_client_rec.AppendText("服务?
器÷:
阰"+strtext+"\n");
}
//处鋦理え猼ext字?
节ú数簓组哩?
文?
字?
显?
示?
的?
委ˉ托狣,
publicdelegatevoidbyteTextDelgate(byte[]showbyte);
//处鋦理え?
服务?
器÷接ó收?
字?
节ú数簓组哩?
文?
字?
显?
示?
的?
委ˉ托狣调獭?
用?
函ˉ数簓
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;
else
strtem+=string.Format("0x{0,2:
X}",showbyte[i]);
}
tx_serve_rec.AppendText("客í户§机ú:
阰"+strtem+"\n");
}
//处鋦理え?
客í户§机ú接ó收?
字?
节ú数簓组哩?
文?
字?
显?
示?
的?
委ˉ托狣调獭?
用?
函ˉ数簓
publicvoidwstr_hex_client(byte[]showbyte)
{
//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");
}
//服务?
器÷侦ì听瑈并¢显?
示?
信?
息¢
publicvoidAcceptMessage()
{
//接ó受酣?
客í户§机ú的?
连?
接ó请?
求ó
TcpClientclient=serve_listener.AcceptTcpClient();
if(client!
=null)
{
bserve_Connected=true;
//this.lab_serve.Text="与?
客í户§"+client.ToString()+"成é功|建¨立ⅰ?
连?
接ó。
£";
stringstrtem="与?
客í户§"+client.ToString()+"成é功|建¨立ⅰ?
连?
接ó。
£";
//lab_serve.
LabTextDelgatewritelab=newLabTextDelgate(wstr_lab);
this.Invoke(writelab,strtem);
}
nStream_serve=client.GetStream();
//nStream_serve.Read(
//读á字?
节ú流ⅰ?
tReader_serve=newStreamReader(nStream_serve);
//tReader_serve.re
//写′字?
节ú流ⅰ?
wReader_serve=newStreamWriter(nStream_serve);
stringsTemp;//临ⅷ?
时骸?
存?
储洹?
读á取?
的?
字?
符?
串?
while(bserve_Connected)
{
if(rb_xs_zf.Checked==true)
{
try
{
//nStream_serve=client.GetStream();
//读á字?
节ú流ⅰ?
//tReader_serve=newStreamReader(nStream_serve);
//连?
续?
从洙?
当獭?
前°流ⅰ?
中D读á取?
字?
符?
串?
直±至á结á束?
sTemp=tReader_serve.ReadLine();
if(sTemp.Length!
=0)
{
//richTextBox2_KeyPress()和íAcceptMessage()
//都?
将?
向òrichTextBox1写′字?
符?
,?
可é能ü访?
问ê有瓺冲?
突?
,?
//所ù以?
,?
需è要癮多à线?
程ì互¥斥a
lock(this)
{
//tx_serve_rec.Text="客í户§机ú:
阰"+sTemp+"\n"+tx_serve_rec.Text;
//this.tx_serve_rec.Invoke(newMethodInvoker(
//delegate{thi