Latest 0.1.5
Homepage https://github.com/ymazdy/YazdanSwiftSocket
License BSD
Platforms ios 8.0
Authors

CocoaPods Compatible
CocoaPods Platforms
Carthage Compatible

YazdanSwiftSocket library provides as easy to use interface for socket based connections on server or client side.
Supports both TCP and UDP sockets.

Installation

Cocoapods

Add this to your Podfile:

pod 'YazdanSwiftSocket'

And run then pod install

Carthage

github "ymazdy/YazdanSwiftSocket"

Code examples

Create client socket

// Create a socket connect to www.apple.com and port at 80
let client = TCPClient(address: "www.apple.com", port: 80)

Connect with timeout

You can also set timeout to -1 or leave parameters empty (client.connect()) to turn off connection timeout.

 switch client.connect(timeout: 1.0) {
   case .success:
     // Connection successful 🎉
   case .failure(let error):
     // 💩
 }

Send data

let data: Data = // ... Bytes you want to send
let result = client.send(data: data)

Read data

var data = client.read(1024*10) //return optional [Int8]

Read String Until certain delimiter

if let string = client.readString(until: "delimiter") {
    print(string) //the data from socket up until "delimiter"
}

Read All the Incoming String

client.onMessage {msg in
    print(msg)              //Reads all the incoming data and when there is no more incoming data it will convert it into string, then calls this closure with the string
}

Close socket

client.close()

Client socket example

let client = TCPClient(address: "www.apple.com", port: 80)
switch client.connect(timeout: 1.5) {
  case .success:
    client.onMessage {msg in
        print(msg)
    }
    client.send(string: "GET / HTTP/1.0nn" )
  case .failure(let error):
    print(error)
}

Server socket example (echo server)

func echoService(client: TCPClient) {
    print("Newclient from:(client.address)[(client.port)]")
    var d = client.read(1024*10)
    client.send(data: d!)
    client.close()
}

func testServer() {
    let server = TCPServer(address: "127.0.0.1", port: 8080)
    switch server.listen() {
      case .success:
        while true {
            if var client = server.accept() {
                echoService(client: client)
            } else {
                print("accept error")
            }
        }
      case .failure(let error):
        print(error)
    }
}

Latest podspec

{
    "name": "YazdanSwiftSocket",
    "version": "0.1.5",
    "summary": "YazdanSwiftSocket is a Swift3 modern TCP & UDP Socket Library",
    "description": "this is YazdanSwiftSocket library that provides great features for TCP & UDP Sockets in Swift3 with modern syntax",
    "homepage": "https://github.com/ymazdy/YazdanSwiftSocket",
    "license": {
        "type": "BSD"
    },
    "authors": {
        "Yazdan.xyz": "[email protected]"
    },
    "source": {
        "git": "https://github.com/ymazdy/YazdanSwiftSocket.git",
        "tag": "0.1.5"
    },
    "social_media_url": "https://twitter.com/yazdanv",
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "YazdanSwiftSocket/**/**/*",
    "pod_target_xcconfig": {
        "SWIFT_VERSION": "3"
    },
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This