Swift Socket 封裝庫:SwiftSockets

jopen 10年前發布 | 73K 次閱讀 Apple Swift開發 SwiftSockets

SwiftSockets是一個基于GCD的簡單Socket庫,用于Swift項目開發中。

該項目包括三個目標:

  • ARISockets
  • ARIEchoServer
  • ARIFetch

建議你從ARIEchoServer開始看.

ARISockets

A framework containing the socket classes and relevant extensions. It takes a bit of inspiration from the SOPE NGStreams library.

Server Sample:

let socket = PassiveSocket<sockaddr_in>(address: sockaddr_in(port: 4242))
  .listen(dispatch_get_global_queue(0, 0), backlog: 5) {
    println("Wait, someone is attempting to talk to me!")
    $0.close()
    println("All good, go ahead!")
  }

Client Sample:

let socket = ActiveSocket<sockaddr_in>()
  .onRead {
    let (count, block, errno) = $0.read()
    if count < 1 {
      println("EOF, or great error handling \(errno).")
      return
    }
    println("Answer to ring,ring is: \(count) bytes: \(block)")
  }
  .connect("127.0.0.1:80") {
    socket.write("Ring, ring!\r\n")
  }

ARIEchoServer

Great echo server. This is actually a Cocoa app. Compile it, run it, then connect to it in the Terminal.app via telnet 1337.

ARIFetch

Connects a socket to some end point, sends an HTTP/1.0 GET request with some awesome headers, then shows the results the server sends. Cocoa app.

Why HTTP/1.0? Avoids redirects on www.apple.com :-)



項目主頁:http://www.baiduhome.net/lib/view/home/1409124349932

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!