服务端:
               int port = 60000;
                string host = "127.0.0.1";
                IPAddress ip = IPAddress.Parse(host);
                IPEndPoint ipe = new IPEndPoint(ip, port);
                Socket s =new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                s.Bind(ipe);//绑定端口
                s.Listen(10);//开始监听
                Socket temp = s.Accept();//为新建连接创建新的Socket。
                string recvStr = "";
                byte[] recvBytes = new byte[1024];
                int bytes;
                bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
                recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes);
                ViewData["test"] = recvStr;//把客户端传来的信息显示出来
                string sendStr = "Ok!";
                byte[] bs = Encoding.UTF8.GetBytes(sendStr);
                temp.Send(bs, bs.Length, 0);//返回客户端成功信息
                temp.Close();
                s.Close();执行“Socket s =new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)”的时候就抛出“在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。”的异常了。但是程序能运行下去,也能得到客户端信息。就是这个地方为什么会抛异常。
各位帮忙解决一下吧!

解决方案 »

  1.   

    Socket 连接异常 之"由于目标机器积极拒绝,无法连接" 的诊断 
    1.如果是采用TCP/udp协议进行连接,检查windows防火墙是否开放相应SocketTCP/udp端口;
      简单的检测方法是关闭windows防火墙后再试;2.检查防火墙软件是否开放相应SocketTCP/udp端口;
      简单的检测方法是关闭防火墙软件后再试;3.如果服务器端和客户端均在本机上运行,则将相应的 serverIP="127.0.0.1",serveraddress="127.0.0.1";
    服务器端侦听:
     listener = new TcpListener(IPAddress.Parse(serverIP), listenport);
                    listener.Start();
    客户端与服务器建立连接:
      clientsocket = new TcpClient(serveraddress, serverport);4.如果服务器运行在局域网或广域网内,则将相应的
    serverIP,serveraddress设为本机所在局域网或广域网上的IP;注意 serverport==listenport;