最近用wcf 服務 給ios和安卓做接口,做了幾個ios的項目 用udp 多點傳播 讓ios多終端接收和重新整理方法
做一個簡單的小例子會把工程給大家下載下傳的
先用c#做發送
多點傳播IP範圍為 224.0.0.0~239.255.255.255
建一個控制台應用程式
//不在一個網段也可以收到
Socket server = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 12002);
IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("224.0.0.2"), 12001);
server.Bind(iep);
byte[] data = Encoding.ASCII.GetBytes(message);
server.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership,
new MulticastOption(IPAddress.Parse("224.100.0.1")));
server.SetSocketOption(SocketOptionLevel.IP,SocketOptionName.MulticastTimeToLive, 50);
server.SendTo(data, iep2);
server.Close();
}
順便把c#接收也說一下(這個可以不用看,因為我們要做的是ios接收)
ios接收
ios 用到的一個類庫AsyncUdpSocket 這個類庫就是發送和接收收 多點傳播的 用起來很友善網上有好多例子我就簡單說一下
建一個Single View Application
把AsyncUdpSocket.h 和AsyncUdpSocket.m加到工程裡
窗體上放一個文本顯示收到的資訊
在ViewController.h裡加入
在ViewController.m 裡實作
補一下發漢字會有亂碼
c#用
ios用
ios URL中文轉碼
方法1
NSMutableURLRequest *request = [[NSMutableURLRequestalloc] init];
// 設定URL
[request setURL:[NSURL URLWithString:url]];
// 設定HTTP方法
[request setHTTPMethod:@"GET"];
// 發送同步請求, 這裡得returnData就是傳回得資料
NSData *data = [NSURLConnectionsendSynchronousRequest:request
returningResponse:nil error:nil];
方法2