当前位置:编程学习 > C#/ASP.NET >>

C# socket 在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。

服务端:
               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 调用中指定的一个未知的、无效的或不受支持的选项或层次。”的异常了。但是程序能运行下去,也能得到客户端信息。就是这个地方为什么会抛异常。
各位帮忙解决一下吧! --------------------编程问答-------------------- 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;

补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,