日期:2014-05-18 浏览次数:22362 次
private void getipandhostname() {//获取本机的ip和hostname
String hostInfo = Dns.GetHostName();
System.Net.IPAddress addr;
addr = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
this.ip = addr.ToString();
this.hostname = Dns.GetHostName();
}
private void button2_Click(object sender, EventArgs e)//启动监听端口
{
this.getipandhostname();
this.myip = IPAddress.Parse(this.ip);
try
{
this.myserver = new IPEndPoint(myip, Int32.Parse("1111"));
this.sesock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
this.sesock.Bind(this.myserver);//绑定端口
this.listBox1.Items.Add("主机:"+this.hostname+";ip:"+this.ip+"开始监听端口1111");
this.resock = this.sesock.Accept();//开始接受
Thread thread = new Thread(new ThreadStart(targett));//启动另外一个线程来接受信息
thread.Start();
}
catch (Exception te)
{
MessageBox.Show(te.Message);
}
}
private void targett()
{
Control.CheckForIllegalCrossThreadCalls = false;
if (this.resock.Connected)
{
this.listBox1.Items.Add("连接已建立!");
while (flag)
{
Byte[] r_data = new Byte[64];
this.resock.Receive(r_data, r_data.Length, 0);//接受数据
string str = System.Text.Encoding.BigEndianUnicode.GetString(r_data);
string temp=((IPEndPoint)resock.RemoteEndPoint).Address.ToString();
this.listBox1.Items.Add(temp+"\n");
}
}
}
private void button1_Click(object sender, EventArgs e)//建立连接
{
this.ip = this.textBox1.Text;
this.myip = IPAddress.Parse(this.ip);
this.myserver = new IPEndPoint(this.myip, Int32.Parse("22"));
this.sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
this.sock.Connect(this.myserver);
this.toolStripLabel1.Text = "与服务器建立联系";
Thread thread = new Thread(new ThreadStart(targett));//启动另外一个线程来接受信息
thread.Start();
}
private void targett() {//接受服务器返回的信息
Control.CheckForIllegalCrossThreadCalls = true;
while(flag){
Byte[] r_data=new Byte[64];
sock.Receive(r_data,r_data.Length,0);
string str = System.Text.Encoding.BigEndianUnicode.GetString(r_data);
this.toolStrip1.Text = str;
}
}
private void button3_Click(object sender, EventArgs e)//发送消息
{
string first = "new.txt";
string second = "contents";
string thired = "end!";
try {
Byte[] s_data=new Byte[64];
string send = first;
s_data = System.Text.Encoding.BigEndianUnicode.GetBytes(send.ToCharArray());
sock.Send(s_data,s_data.Length,0);
}catch(Exception te){
MessageBox.Show(te.Message);
}
}