下載位置:https://github.com/robbiehanson/CocoaAsyncSocket
使用 AsyncSocket.h 及 AsyncSocket.m
因為專案是 swift 專案,要使用 objecitive-c 的函式庫要在 Header 檔中 import。
1. 複製 AsyncSocket.m 及 AsyncSocket.h 到專案中,xcode 會問你是否建立 Bridge file,確定建立。
2. 在 你的專案名稱-Bridging-Header.h 檔中加入:
1
|
# import "AsyncSocket.h"
|
ViewControler.swift
//
// ViewController.swift
// weixin_t1
//
// Created by on 16/5/8.
// Copyright © 2016年 . All rights reserved.
//
import UIKit
class ViewController: UIViewController,AsyncSocketDelegate {
//手动发送
@IBAction func btn_send(sender: UIButton) {
let bytearr:[UInt8] = [5,6,7];
let data: NSData = NSData(bytes: bytearr, length: bytearr.count);
//send data
socket.writeData(data, withTimeout: 0, tag: 0);
print("has send hand");
//开始监听接收,并如10秒内无消息回复就自动断开连接,只接收一次,
socket.readDataWithTimeout(10, tag: 0);
//如果设置超时为-1 则没有超时限制
//socket.readDataWithTimeout(-1, tag: 0);
}
//手动断开
@IBAction func btn_discon(sender: UIButton) {
socket.disconnect();
print("手动点击了断开");
}
//手动连接
@IBAction func btn_conn(sender: UIButton) {
socket = AsyncSocket(delegate: self);
do{
try socket.connectToHost("192.168.1.102", onPort: 60000);
}catch let error as NSError{
print(error);
}
print("连接成功");
}
var socket: AsyncSocket!;
override func viewDidLoad() {
super.viewDidLoad();
// Do any additional setup after loading the view, typically from a nib.
}
//当连接建立后调用
func onSocket(sock: AsyncSocket!, didConnectToHost host: String!, port: UInt16) {
print("has connect");
}
//当有回调调用
func onSocket(sock: AsyncSocket!, didReadData data: NSData!, withTag tag: Int) {
print("has receive");
print("data:\(data.length)");
//如果不能一次接收完还有更多的
socket.readDataWithTimeout(10, tag: 0);
//如果设置超时为-1 则没有超时限制
//socket.readDataWithTimeout(-1, tag: 0);
}
//当断开连接调用
func onSocketDidDisconnect(sock: AsyncSocket!) {
print("has disconnect");
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
相关推荐
Swift编程语言中,AsyncSocket库通常用于处理TCP连接,但其实它也支持UDP(User Datagram Protocol)通信。本文将深入探讨如何使用AsyncSocket在Swift中建立UDP套接字连接,并结合提供的AsyncUdpSocket.h和...
包含TCP连接 , 消息发送 , 消息接收 , 心跳处理 ,断网重连 , 消息超时 , 消息分发 , 数据库结构设计 , 消息丢失等 . 以及UI设计, 文本表情消息/语音消息/图片消息/视频消息/文件消息/撤回消息/提示语消息的实现思路...
项目需要用swift编写一个iOS的LED控制程序,连接的微型wifi模块工作在STA模式后会间隔往指定的端口发送UDP消息,同时建立一个TCP服务器,所以需要使用TCP和UDP连接。 AsyncSocket挺火,但是是OC的,所以在写完一个...
使用`AsyncSocket`首先需要创建一个实例,然后调用`connectToHost:onPort:`方法来建立连接。例如: ```objc AsyncSocket *socket = [[AsyncSocket alloc] initWithDelegate:self]; [socket connectToHost:@...
这个库由Robbie Hanson开发,是Objective-C原版AsyncSocket的Swift版本,允许开发者轻松地处理TCP连接和数据传输。 在iOS和Mac应用开发中,网络通信是不可或缺的一部分,用于实现应用程序与服务器之间的数据交换。...
这一步骤在`ConnectToServer:`方法中实现,它接收服务器地址和端口号作为参数,并尝试建立连接: ```objective-c - (BOOL)ConnectToServer:(NSString *)addr port:(int)port { // 设置服务器地址和端口 // 尝试...
- `- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port`:当连接建立成功时调用。 - `- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err`:...
- TCP是一种面向连接的协议,数据传输前需要建立连接。 - 它提供了可靠的数据传输服务,包括顺序传输、错误检测与重传机制。 - 数据被分割为多个段进行传输,并在接收端重新组装。 - 每个TCP连接由一个四元组...
下面将详细讨论如何在Swift中初始化和使用AsyncSocket,以及实现连接TCP服务器、发送数据和接收数据的关键步骤。 首先,我们需要在Swift项目中导入Objective-C的代码。为了做到这一点,需要确保`AsyncSocket.h`...
IOS应用源码之【框架】基于第三方AsyncSocket的TCP服务器、TCP客户端、UDP客户端.rar
VCTcp异步Socket通信类就是一种实现TCP(传输控制协议)网络通信的工具,它专为Visual C++ 6.0(VC6)设计,提供了一种高效且易于使用的接口来处理异步Socket操作。下面我们将深入探讨这个类以及它背后的原理。 ...
【框架】基于第三方AsyncSocket的TCP服务器、TCP客户端、UDP客户端.zipIOS应用例子源码下载【框架】基于第三方AsyncSocket的TCP服务器、TCP客户端、UDP客户端.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合...
- `onSocket:didAcceptNewSocket:`:当AsyncSocket作为服务器接受到新的客户端连接时调用,可用于创建一个新的AsyncSocket实例来处理新连接。 - `onSocket:willDisconnectWithError:`和`onSocketDidDisconnect:`:...
2. **易于使用**:提供了简单易懂的API,使得开发者可以快速集成到项目中,实现TCP连接、读写数据、断开连接等功能。 3. **错误处理**:AsyncSocket提供了详细的错误处理机制,可以帮助开发者快速定位和解决网络...
AsyncSocket是由CocoaAsyncSocket项目提供的一个强大的Objective-C类,它简化了iOS和Mac OS X上的TCP Socket编程。这个库不仅支持异步读写操作,还处理了许多底层Socket编程中常见的复杂问题,如连接管理、线程安全...
Python异步Socket编程代码,对想学习python socket的人有用
/** * In the event of an error, the socket is closed. * You may call "unreadData" during this call-back ...- (NSRunLoop *)onSocket:(AsyncSocket *)sock wantsRunLoopForNewSocket:(AsyncSocket *)newSocket;
4. **强大的功能**:AsyncSocket支持TCP连接的创建、读写、断开以及错误处理等基本功能。此外,还有SSL/TLS加密、数据分帧、连接池、广播地址监听等高级特性,满足了各种复杂的网络应用场景。 5. **易于使用**:...