第一次做socket的一些心得
理论什么的bilibala的就是自己百度吧
推荐一篇不错的关于socket的文章
http://www.cnblogs.com/sunway/archive/2010/01/29/1659074.html
其实我也只是刚刚完成了端口监听这一项,其实主要就是获取本地的IP地址
IPAddress myIP; string ipString = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString();//获取本机IP地址 myIP = IPAddress.Parse(ipString);
其中有些问题就是AddressList[]的问题,刚开始一直写的是AddressList[0],结果每次取得的都是错误的IP,最后查资料才知道0是IPv6的格式,而1是IPv4的格式,这样才把主要问题给解决了。
最后附上全部代码吧
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.Net; 10 using System.Threading; 11 using System.Net.Sockets; 12 13 namespace socket测试WinForm 14 { 15 public partial class Form1 : Form 16 { 17 public Form1() 18 { 19 InitializeComponent(); 20 } 21 IPAddress myIP; 22 private void button1_Click(object sender, EventArgs e) 23 { 24 try 25 { 26 IPHostEntry entry = new IPHostEntry(); 27 string ipString = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString();//获取本机IP地址 28 myIP = IPAddress.Parse(ipString); 29 txtState.Text = ""; 30 txtState.AppendText("主机开始监听.....\r\n"); 31 TcpListener listener = new TcpListener(myIP ,Convert.ToInt32(textBox2.Text)); 32 listener.Start(); 33 } 34 catch(Exception ez) 35 { 36 MessageBox.Show(ez.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); 37 return; 38 } 39 } 40 } 41 }
有不足的还请大家指正吧