代码如下:            string serverIpadress= ConfigurationManager.AppSettings["ip"];
            int port = Convert.ToInt32(ConfigurationManager.AppSettings["port"]);            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            socket.Blocking = true;            IPAddress ip = IPAddress.Parse(serverIpadress);
            IPEndPoint computernode1 = new IPEndPoint(ip, port);            socket.Bind(computernode1);  //这句报错:以一种访问权限不允许的方式做了一个访问套接字的尝试。            socket.Listen(-1);            while (true)
            {
                clientsock = socket.Accept();                if (clientsock.Connected)
                {
                    Thread tc = new Thread(new ThreadStart(listenclient));                    tc.Start();
                }
            }

解决方案 »

  1.   

    晕,不小心发了2遍,另一篇地址
    http://topic.csdn.net/u/20090812/14/7cb557ff-e022-4a66-bfc6-ed2de525a682.html
      

  2.   

    参考这个 http://topic.csdn.net/u/20080623/08/4bbd2475-45f1-42e3-a613-16b094759ade.html//"开始"按钮事件   private void button1_Click(object sender, System.EventArgs e) {    //取得预保存的文件名    string fileName=textBox3.Text.Trim();    //远程主机    string hostName=textBox1.Text.Trim();    //端口    int port=Int32.Parse(textBox2.Text.Trim());    //得到主机信息    IPHostEntry ipInfo=Dns.GetHostByName(hostName);    //取得IPAddress[]    IPAddress[] ipAddr=ipInfo.AddressList;    //得到ip    IPAddress ip=ipAddr[0];    //组合出远程终结点    IPEndPoint hostEP=new IPEndPoint(ip,port);    //创建Socket 实例    Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);    try    {    //尝试连接    socket.Connect(hostEP);    }    catch(Exception se)    {    MessageBox.Show("连接错误"+se.Message,"提示信息    ,MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);   }   //发送给远程主机的请求内容串   string sendStr="GET / HTTP/1.1\r\nHost: " + hostName +   "\r\nConnection: Close\r\n\r\n";    //创建bytes字节数组以转换发送串    byte[] bytesSendStr=new byte[1024];    //将发送内容字符串转换成字节byte数组    bytesSendStr=Encoding.ASCII.GetBytes(sendStr);   try   {   //向主机发送请求   socket.Send(bytesSendStr,bytesSendStr.Length,0);   }   catch(Exception ce)    {    MessageBox.Show("发送错误:"+ce.Message,"提示信息    ,MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);    }    //声明接收返回内容的字符串    string recvStr="";    //声明字节数组,一次接收数据的长度为1024字节    byte[] recvBytes=new byte[1024];    //返回实际接收内容的字节数    int bytes=0;   //循环读取,直到接收完所有数据   while(true)   {   bytes=socket.Receive(recvBytes,recvBytes.Length,0);   //读取完成后退出循环   if(bytes〈=0)   break;   //将读取的字节数转换为字符串   recvStr+=Encoding.ASCII.GetString(recvBytes,0,bytes);   }   //将所读取的字符串转换为字节数组   byte[] content=Encoding.ASCII.GetBytes(recvStr);    try    {    //创建文件流对象实例    FileStream fs=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.ReadWrite);   //写入文件   fs.Write(content,0,content.Length);   }   catch(Exception fe)    {    MessageBox.Show("文件创建/写入错误:"+fe.Message,"提示信息",MessageBoxButtons.RetryCancel,MessageBoxIcon.Information);    }    //禁用Socket    socket.Shutdown(SocketShutdown.Both);    //关闭Socket    socket.Close();    }    } 
      

  3.   

    string serverIpadress= ConfigurationManager.AppSettings["ip"];
                int port = Convert.ToInt32(ConfigurationManager.AppSettings["port"]);是否取到值?