第一次做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 }
View Code

有不足的还请大家指正吧

posted @ 2014-05-21 11:04  Dranched  阅读(520)  评论(0编辑  收藏  举报