如何在Windows Phone 7.1上给定主机名和端口建立TCP连接?

时间:2011-06-22 09:06:50

标签: .net windows-phone-7

在WP 7.1上,Socket类缺少像Socket.Connect(string,int)这样的方法,这些方法可以使这个方法直截了当。可用的替代Socket.ConnectAsync显然需要一个数字IP地址(与SocketAsyncEventArgs对象一起传递)。

此外,Dns.GetHostEntry等方法也缺失,因此您无法轻易获得给定主机名的IP地址。

2 个答案:

答案 0 :(得分:2)

Windows Phone Mango API中有许多调用不可用,特别是套接字始终是异步的(因此没有NetworkStream)并且不支持服务器套接字。 也就是说,这里有一个很好的教程,可以在芒果中使用套接字。一个小小的tic脚趾示例。

http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx

这里有一些关于使用套接字的文档:

http://msdn.microsoft.com/en-us/library/hh202870(v=vs.92).aspx

答案 1 :(得分:1)

事实证明,连接到具有给定主机名的主机实际上非常容易。与问题所暗示的相反,可以为SocketAsyncEventArgs.RemoteEndPoint分配IPEndPoint或DnsEndPoint对象:

var args = new SocketAsyncEventArgs();
args.RemoteEndPoint = new DnsEndPoint(hostName, port);
args.Completed += ... // Add your completion handler here
Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, args);