国庆节过了4天了,还有三天昨晚老婆去北京出差了,今天中午到那里,好象条件不是我们想象的那么好,特别想念特别担心.今天冷静下来想想我一直在做BS方面的开发,CS方面的东西忘记了不少,老婆一直做CS方面的开发,说到技术上的让我感到有点陌生了,打开电脑看了下以前的项目,看看上海原创公司的"三台合一系统",看看老婆公司的MES项目,都是服务器,客户端,两个实现的方式不同(有Tcp/ip,也有Remoting等等),想到在公司培训时的WCF(Windows Communication Frameworks)里面主要是指多个项目之间的互联性,也是通过不同的连接方式实现的(TCP/IP,Remoting,MSMQ,还有通常BS中的WebService等等).但是WCF的技术使用是极少的,所以现在做CS还是使用的前面的TCP/IP,Remoting的连接技术.今天看了个项目,学习到的有:
![](/Images/OutliningIndicators/ContractedBlock.gif)
判断IP地址
1
private IPAddress myIP=IPAddress.Parse("127.0.0.1");
2![](/Images/OutliningIndicators/None.gif)
3
try
4![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
5
myIP =IPAddress.Parse(textBox1.Text);
6
7
}
8![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
catch
{MessageBox.Show("您输入的IP地址格式不正确,请重新输入!");}
![](/Images/OutliningIndicators/ContractedBlock.gif)
连接远程主机
1
private IPEndPoint MyServer;
2
private Socket sock;
3
MyServer=new IPEndPoint(myIP,Int32.Parse(textBox2.Text));
4
sock =new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
5
6
sock.Connect(MyServer);若要直接断开连接就:sock.Close();
从来没有用过numericUpDown这个控件,今天看到一个项目里面用来作为IP的选择,不错.
progressBar是是来显示做个什么事件的时候的进度的.有点像BS中的AJAX效果,这个也比较好用,有个Minimum属性和Maximum属性来设置起始点,
![](/Images/OutliningIndicators/ContractedBlock.gif)
获取一些基本信息
1
//下行获得主机信息
2
IPHostEntry myHost = Dns.GetHostByAddress(myIP);
3
//下行获得主机名并转换为字符串
4
string cc=myHost.HostName.ToString();保存richTextBox中的数据可以保存为各种格式:
![](/Images/OutliningIndicators/ContractedBlock.gif)
保存格式
1
StreamWriter sw=null;
2
saveFileDialog1.Filter="文本文件(*.txt)|*.txt|Word文档(*.doc)|*.doc|所有文件(*.*)|*.*";
3
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
4![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
5
try
6![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
7
sw=new StreamWriter(saveFileDialog1.FileName,false,System.Text.Encoding.Unicode);
8
sw.Write(richTextBox1.Text);}
9![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
catch(Exception excep)
{MessageBox.Show(excep.Message);}
10![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
finally
{if(sw!=null)
{sw.Close();}
11
}//对应finally{
12![](/Images/OutliningIndicators/InBlock.gif)
13
} 查看保存的信息:
![](/Images/OutliningIndicators/ContractedBlock.gif)
读取相应信息
1
string aa;
2
try
3![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{ openFileDialog1.Filter="文本文件(*.txt)|*.txt|Word文档(*.doc)|*.doc|所有文件(*.*)|*.*";
4
if(openFileDialog1.ShowDialog()==DialogResult.OK)
5![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
6
7
aa=File.OpenText(openFileDialog1.FileName).ReadToEnd();
8
richTextBox1.AppendText(aa);
9
File.OpenText(openFileDialog1.FileName).Close();
10
11
}
12
}//try
13![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
catch(Exception ee)
{MessageBox.Show(ee.Message);}停止做个什么事情:Application.Exit();