我创建了一个小程序来测试UPnP Multicast(Visual C#2010 Express,在Windows 7 Professional 64 Bit上运行).我可以从网络中的UPnP设备收到UPnP NOTIFY消息.但是当我发送M-SEARCH消息时,我得不到答案.
我在iOS环境中测试了相同的代码(适用于iOS的Monotouch,在Mac上的iPhone模拟器上运行).它运行良好,我得到了我的UPnP设备的所有搜索响应.我也可以从我的Windows程序中看到M-SEARCH消息.
看起来Windows(或防火墙?)隐藏了搜索响应.任何的想法?
这是代码:
IPEndPoint LocalEndPoint = new IPEndPoint(IPAddress.Any, 1900);
IPEndPoint MulticastEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);
Socket UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
UdpSocket.Bind(LocalEndPoint);
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(MulticastEndPoint.Address, IPAddress.Any));
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 2);
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastLoopback, true);
Console.WriteLine("UDP-Socket setup done...\r\n");
string SearchString = "M-SEARCH * HTTP/1.1\r\nHOST:239.255.255.250:1900\r\nMAN:\"ssdp:discover\"\r\nST:ssdp:all\r\nMX:3\r\n\r\n";
UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);
Console.WriteLine("M-Search sent...\r\n");
byte[] ReceiveBuffer = new byte[64000];
int ReceivedBytes = 0;
while (true)
{
if (UdpSocket.Available > 0)
{
ReceivedBytes = UdpSocket.Receive(ReceiveBuffer, …Run Code Online (Sandbox Code Playgroud) 我在MonoTouch上编译了一个iOS应用程序以进行分发.现在我尝试使用Application Loader在App Store上获取它.但是我收到一条错误消息"......图标尺寸(0 x 0)不符合尺寸要求......".
在这个论坛上,我发现其他开发人员与XCode有同样的问题.他们的解决方案是禁用png文件的压缩.但是我怎么能在MonoTouch中做到这一点?
有谁知道这个问题?
我实现了一个UIPopoverController,它充满了一个分组的UITableView.只要弹出窗口不可见,表格视图中的单元格数就可以动态变化.一旦弹出窗口变得可见,单元格的数量就会固定.
当弹出窗口变为可见时,我将弹出窗口内容的大小调整为表格视图的高度.我使用UITableView中的SizeThatFits()方法来获取表大小,并使用此值来设置popoverContentSize高度.
这在应用程序运行时工作正常.但总是第一次在应用程序重新启动后显示弹出窗口时,SizeThatFits()提供了错误的高度(大约60像素到高).有谁知道这个问题可能是什么?
我使用以下代码获取iPhone上当前可用的网络接口列表:
NetworkInterface[] l__objNetworkInterfaceList = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface l__objNetworkInterface in l__objNetworkInterfaceList)
{
Console.WriteLine("Name: " + l__objNetworkInterface.Name);
}
Run Code Online (Sandbox Code Playgroud)
l__objNetworkInterface.Name返回一个标识接口的短字符串(例如lo0用于环回,en0用于WiFi,pdp_ip用于蜂窝,依此类推).但我得到一些名称,我无法弄清楚他们指定的接口类型:
ap0
gif0
stf0
Run Code Online (Sandbox Code Playgroud)
有谁知道这种接口类型?是否有列出接口的文档?
我尝试使用工具栏的自定义视图创建UIBarButtonItem.视图本身显示良好,但是当我单击BarButton时,不会执行任何操作.看起来触摸事件不会从视图转发到UIBarButtonItem实例.我检查了响应链,我认为它看起来不错.我也搜索了互联网并检查了Apple文档,但找不到任何有关我的问题的提示.
这是我的代码:
g__objWeatherButton = new UIBarButtonItem[1];
UIView l__objCustomView = g__objWeatherDisplay.InfoBarButton; // Returns a reference to my custom view
UIBarButtonItem l__objButton = new UIBarButtonItem(l__objCustomView);
l__objButton.Clicked += delegate {this.WeatherButtonEvent();}; // my action handler
l__objButton.Width = 200;
l__objButton.Enabled = true;
g__objWeatherButton[0] = l__objButton;
this.Items = g__objWeatherButton; // "this" is my UIToolbar object
Run Code Online (Sandbox Code Playgroud)
有人能给我一个暗示问题所在吗?或者一个工作代码示例(请在c#中 - 在Objective-C中找到一些示例,但显然忽略了关键技巧;-)