C# 不支持此协议版本????
//使用IPV4
client = new TcpClient(AddressFamily.InterNetwork);
//实际使用时要将Dns.GetHostName()变为服务器域名或IP地址
IPAddress[] serverIp = Dns.GetHostAddresses(Dns.GetHostName());
//创建一个委托,让其引用在异步操作完成时调用的回调方法
AsyncCallback requestCallback = new AsyncCallback(RequestCallback);
//将事件的状态设置为非终止状态
allDone.Reset(); MessageBox.Show(IPAddress.Parse(GetIpAddress()).ToString());
client.BeginConnect(serverIp[0], 51888, requestCallback, client);
编译器说 client.BeginConnect(serverIp[0], 51888, requestCallback, client); 不支持此协议版本。各位大神该怎样解决??
------最佳解决方案--------------------debug 一下 serverIp 估计是 IPv6 的。
------其他解决方案--------------------
我倒感觉是IPv4的。
但是你有感觉不,一般在本机取得自身IP的时候,特别是新的操作系统,会显示一个ipv6的loopback, 也就是::1这个造成了LZ的问题,你觉得可能不……
所以我感觉lz应该不要直接用[0],而是用ip的正则匹配一下ipv4,取得第一个match
------其他解决方案--------------------
oh no……今天不宜不宜回答问题……好吧我承认我看错fangxing的回复了。
意思是一样的
------其他解决方案--------------------
oh no……今天不宜不宜回答问题……好吧我承认我看错fangxing的回复了。
意思是一样的[/quote]
我打算写一个能够外网聊天的软件, 上面客户端的代码; 服务端监听我是这样写的
listener = new TcpListener(IPAddress.Parse("61.157.97.82"), 51888);
listener.Start();
但是一运行到 listener.Start(); 就会弹出
请问是啥原因啊??
我的思路: 服务器监听本机外网ip, 客户端连接服务端外网IP;然后进行聊天;
------其他解决方案--------------------
我打算写一个能够外网聊天的软件, 上面客户端的代码; 服务端监听我是这样写的
listener = new TcpListener(IPAddress.Parse("本机外网IP"), 51888);
listener.Start();
但是一运行到 listener.Start(); 就会弹出
请问是啥原因啊??
我的思路: 服务器监听本机外网ip, 客户端连接服务端外网IP;然后进行聊天;
难道不能直接这样吗?
------其他解决方案--------------------我明白了,这里的listener = new TcpListener(IPAddress.Parse("本机外网IP"), 51888);第一个参数应该是本地IP;直接这样listener = new TcpListener(51888);就行了
------其他解决方案--------------------