日期:2014-05-18 浏览次数:22199 次
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); } }