Giter Site home page Giter Site logo

swiftsocket's Introduction

a simple socket library for apple swift lang

useage

drag ysocket.c and ysocket.swift to your project just use apis in YSocket class

api usage

create client socket

	//create a socket connect to www.apple.com and port at 80
	var client:TCPClient = TCPClient(addr: "www.apple.com", port: 80)

connect with timeout

var (success,errmsg)=client.connect(timeout: 10)

send data

var (success,errmsg)=client.send(str:"GET / HTTP/1.0\n\n" )
//or you can send binnary data
//socket.send(data:[Int8])

read data

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

close socket

var (success,errormsg)=client.close()

create servert socket

var server:TCPServer = TCPServer(addr: "127.0.0.1", port: 8080)

listen

var (success,msg)=server.listen()

accept

var client=server.accept() //now you can use client socket api to read and write

client socket example

//创建socket
var client:TCPClient = TCPClient(addr: "www.apple.com", port: 80)
//连接
var (success,errmsg)=client.connect(timeout: 1)
if success{
    //发送数据
    var (success,errmsg)=client.send(str:"GET / HTTP/1.0\n\n" )
    if success{
        //读取数据
        var data=client.read(1024*10)
        if let d=data{
            if let str=String.stringWithBytes(d, length: d.count, encoding: NSUTF8StringEncoding){
                println(str)
            }
        }
    }else{
        println(errmsg)
    }
}else{
    println(errmsg)
}

server socket excample(echo server)

func echoService(client c:TCPClient){
    println("newclient from:\(c.addr)[\(c.port)]")
    var d=c.read(1024*10)
    c.send(data: d!)
    c.close()
}
func testserver(){
    var server:TCPServer = TCPServer(addr: "127.0.0.1", port: 8080)
    var (success,msg)=server.listen()
    if success{
        while true{
            if var client=server.accept(){
                echoService(client: client)
            }else{
                println("accept error")
            }
        }
    }else{
        println(msg)
    }
}

Copyright and License

Code released under the BSD license.

QQ group

275935304

swiftsocket's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.