通过UDP从iPhone发送的“Hello World”的消息(Send “Hello World”

2019-07-29 05:22发布

我是新来的目标C和我需要通过UDP发送一个简单的消息。 服务器部分工作因为它是用C#实现。

在C#中的服务器代码:

 var server = new UdpClient(8585);
 var groupEP = new IPEndPoint(IPAddress.Parse("192.168.0.120"),8585);
 byte[] bytes = server.Receive(ref groupEP);

而在C#中的客户端部分是:

   System.Net.Sockets.UdpClient client;     
client = new System.Net.Sockets.UdpClient("192.168.0.120",8585);    
client.Send(new byte[]{1,2,3,4},4);

我该怎么办的目标C相同的客户端部分? 我知道有很多在互联网上的教程,例如这个库 。 当我导入库项目中,我不知道如何来实例化一个新的对象。 我试过了:

 [[GCDAsyncUdpSocket alloc] initWithSocketQueue:... ??? I don't know how to initialize it.

我将不胜感激,如果有人能告诉我的,我怎么能复制客户端部分成Objective C的一个简单的例子。

Answer 1:

从下载GCDAsyncUdpSocket 这里 。 那么你就可以发送数据包为:

 GCDAsyncUdpSocket *udpSocket ; // create this first part as a global variable
 udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

 NSData *data = [ 
                   [NSString stringWithFormat:@"%Hello Wold" 
                    dataUsingEncoding:NSUTF8StringEncoding
                ];

[udpSocket sendData:data toHost:@"192.168.10.111" port:550 withTimeout:-1 tag:1];


Answer 2:

苹果提供了一个名为样本项目udpecho创建 。 虽然这是一个Mac的项目,它主要依靠从核心基础课,其也可在iOS和它包含应该同样适用于iOS的教训。



Answer 3:

首先,有一个读这篇文章的其中列出了一些在iOS中可用的基本类型的网络通信的。

特别是,苹果使用套接字和具有网络通信的例子NSStream类在这里 。

可以使用正常的BSD套接字API,但它是气馁,因为他们不会与某些iOS的网络功能,如VPN的按需工作。 如果这是没有结果的,那么你可以检查此为如何在C.使用套接字的例子

从个人的经验,它并不像你在C#中已经得到了什么一样简单。



Answer 4:

我使用管理MonoTouch的解决问题。 我只是做了同样的方式,我会做它在C#中:

 System.Net.Sockets.UdpClient client;
 client = new System.Net.Sockets.UdpClient("192.168.0.120",550);
 client.Send(new byte[]{1,2,3,4},4);

我不想虽然支付牌照。 这将花费$ 400 如果我在那里有超过3行代码,我可能有它的想法。



文章来源: Send “Hello World” message via udp from iPhone