SwiftSocket alternatives and similar libraries
Based on the "Socket" category.
Alternatively, view SwiftSocket alternatives based on common mentions on social networks and blogs.
-
SwiftWebSocket
A high performance WebSocket client library for swift. -
BlueSocket
Socket framework for Swift using the Swift Package Manager. Works on iOS, macOS, and Linux. -
Socks
๐ Non-blocking TCP socket layer, with event-driven server and client. -
BlueSSLService
SSL/TLS Add-in for BlueSocket using Secure Transport and OpenSSL -
SocketIO-Kit
Socket.io iOS and OSX Client compatible with v1.0 and later -
SwiftDSSocket
DispatchSource based socket framework written in pure Swift
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SwiftSocket or a related project?
README
SwiftSocket
SwiftSocket 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 'SwiftSocket'
And run then pod install
Carthage
github "swiftsocket/SwiftSocket"
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: 10) {
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]
Close socket
client.close()
Client socket example
let client = TCPClient(address: "www.apple.com", port: 80)
switch client.connect(timeout: 1) {
case .success:
switch client.send(string: "GET / HTTP/1.0\n\n" ) {
case .success:
guard let data = client.read(1024*10) else { return }
if let response = String(bytes: data, encoding: .utf8) {
print(response)
}
case .failure(let error):
print(error)
}
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)
}
}