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#