Tag: 套接字

Swift:TCP套接字保持活动

我正在开发一个iOS应用程序(使用Swift),它使用TCP连接到TCP服务器。 目前,只要我发送了一些东西,连接就会自动closures。 我想保持连接打开/活着,直到我手动closures它。 从这个基于Objective-C的问题中,我发现在Objective-C中可以这样做: #include <sys/socket.h> … CFDataRef socketData = CFReadStreamCopyProperty((__bridge CFReadStreamRef)(stream), kCFStreamPropertySocketNativeHandle); CFSocketNativeHandle socket; CFDataGetBytes(socketData, CFRangeMake(0, sizeof(CFSocketNativeHandle)), (UInt8 *)&socket); CFRelease(socketData); int on = 1; if (setsockopt(socket, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) == -1) { NSLog(@"setsockopt failed: %s", strerror(errno)); } 我目前的Swift实现/翻译如下所示: var socketData = CFReadStreamCopyProperty(inputStream, kCFStreamPropertySocketNativeHandle) as CFDataRef var socket: CFSocketNativeHandle CFDataGetBytes(socketData, CFRangeMake(0, sizeof(CFSocketNativeHandle)), (UInt8).self&socket) var […]

GCDAsyncSocket在Swift中

我想打开一个基于ELM327芯片的OBDencryption狗的TCP连接。 所以我决定使用GCDAsyncSocket库。 我写了这个代码, import UIKit import CocoaAsyncSocket class ViewController: UIViewController, GCDAsyncSocketDelegate { let addr = "192.168.0.10" let port:UInt16 = 35000 var socket:GCDAsyncSocket! override func viewDidLoad() { super.viewDidLoad() socket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue()) do { try socket.connectToHost(addr, onPort: port) } catch let e { print(e) } // Do any additional setup after loading the view, […]

绑定UDP套接字到蜂窝IP

我正在尝试创build一个iOS客户端,通过设备的蜂窝通信将数据发送到UDP套接字上的服务器。 以下是IOS支持同时wifi和3G / 4G连接? 链接到iOS多pathBSD套接字testing ,我试过在Swift 3中实现解决scheme,即枚举设备中的networking接口,识别蜂窝接口(如Swift中的build议- 获取设备的IP地址 ),创build一个UDP套接字并绑定它到从界面检索到的sockaddr 。 在Swift中实现套接字编程是通过以下Swift中的Socket编程实例完成的:第1部分 – getaddrinfo和后续文章。 不幸的是,我试图在套接字上发送数据时收到操作不允许 ,所以相反,我试着创build套接字并将其绑定到getaddrinfo在指定端口(5555)上调用的数据。 这也没有办法。 有趣的是,在试图理解什么是错误的时候,我为这两种方法创build了一个testing应用程序,并且当连续testing1000次create-> bind-> send-> close时,大约有3-5次尝试发送数据没有任何方法的错误。 不用说这是在实际的iPhone上testing的。 相当茫然,我很感激有关这方面的任何build议。 在静态“SocketManager”类中实现的代码( 编辑:固定的sockaddr分配大小) // Return IP address String, port String & sockaddr of WWAN interface (pdp_ip0), or `nil` public static func getInterface() -> (String?, String?, UnsafeMutablePointer<sockaddr>?) { var host : String? var service : […]

处理来自IOS设备的请求时发生exception

我正尝试在iOS设备上播放video。 当我试图玩我得到以下错误: [27/Apr/2015 06:59:30] "GET /media/2015/04/VID_20150327_112644.mp4 HTTP/1.1" 200 18 Exception happened during processing of request from ('192.168.1.230', 51412) Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self) File "/home/likewise-open/ZEALOUSYS/manesh/virtualenv/tracks/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 129, in __init__ super(WSGIRequestHandler, self).__init__(*args, **kwargs) File "/usr/lib/python2.7/SocketServer.py", line 651, in __init__ […]

iOS / Android实时新闻馈送实施

基于这一点,可以肯定地说,使用轮询比使用套接字更好地构build实时新闻馈送types的应用程序呢? 我正在计划为移动设备构build一个新闻types的应用程序,并计划使用套接字来做这件事,但我开始认为,build立一个RESTful应用程序可能更好,而只是在客户端上进行短时间间隔轮询获得新的更新。 那里的其他人如何实现“实时”移动应用?

在多个iOS设备上同时触发事件

我想在同一时间在多个iOS设备上触发事件(例如播放音乐)(以毫秒为单位) 我的方法是保持套接字连接,并发送时间戳到iOS设备(从当前时间10秒后),并在该时间戳iOS设备上触发事件。 问题是iOS设备可能会有一个或两个不同的时间,这将导致一个desynchronize。 甚至时间戳也指出每个设备(AFAIK)的同一时间,他们不是在毫秒敏感性。 有没有办法在多台设备上同时触发一个事件,还是应该遵循的方法?

iPhone通信使用套接字

我试图使用应用程序通过套接字与Windows通信。 至less,我试图至less弄清楚如何从iPhone创build连接(也许使用iPhone来ping Windows机器?)我不清楚我需要从哪里开始。 一般来说,我对iOS开发很陌生,并且是套接字/networking编程的新手段。 我已经尝试了几个教程,没有得到我很远。 我的目标是: 通过套接字连接到服务器(服务器将是一台Windows服务器,服务等待来自iPhone的传入连接) 我最终将发送JSON数据包到服务器,以及从服务器接收JSON数据包 在iPhone中提出反应,表明成功或失败 如果可能的话,我想先写/build立客户端,但是到目前为止我已经失去了。 希望SO社区里的好人可以伸出援助之手,指向正确的方向。 提前致谢!

在iOS上与Icecast服务器打开套接字连接

我正在尝试为iOS上的Icecast服务器创build源客户端。 我相信我理解这里的协议Icecast 2:协议描述,使用C# 但是,我无法创build到服务器的套接字连接。 假设服务器在http://myicecastserver.com上的8000端口上运行。 我设置了一个名为stream的安装点,它在ezstream用作input时起作用。 我应该如何从iOS打开连接? 我已经使用这样的AsyncSocket库: [socket connectToHost:@"http://myicecastserver.com" onPort:8000 error:&err]; 喜欢这个: [socket connectToHost:@"http://myicecastserver.com/stream" onPort:8000 error:&err]; 无济于事。 我也尝试使用与SocketRocket的websocket连接也无济于事: SRWebSocket *socket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"http://myicecastserver.com:8000/stream"]]; [socket setDelegate:self]; [socket open]; 这给了我一个404错误 我已经尝试了一些这方面的变化,但只是无法打开这个连接来挽救我的生命! 谢谢! UPDATE 我使用SocketTest作为testing源客户端,并且能够在端口8000上连接到http://myicecastserver.com

IOS中的套接字连接

嗨,我是移动应用程序开发新手。 我的服务器通过套接字发送数据。 我有一个问题与套接字,每当我的应用程序要后台,我没有从套接字获取数据。 我想知道如何build立一个套接字连接,无论应用程序在前台还是后台,都可以随时给我提供数据。 提前致谢。

单点触摸的原始sockets

我试图在MonoTouch中实现pingfunction。 由于某些原因,来自System.Net.NetworkInformation Ping类不能在真实的设备上工作,所以我决定切换到原始套接字并自己实现ping。 不幸的是,我得到了“访问被拒绝”的信息: socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); 任何想法如何可以ping单点触摸? 为什么我不能创build原始套接字?