
1 功能需求:
1 在Swift下使用GcdasyncSocket实现简单的信息收发功能
2 Mac下为tcp客户端,windows下为tcp服务器
2 效果图:
3 swift代码:需要导入GcdasyncSocket库文件,可去github下载
import UIKit
class VIEwController: UIVIEwController,GcdasyncSocketDelegate {
@IBOutlet var serveripinput: UITextFIEld!
@IBOutlet var msginput: UITextFIEld!
@IBOutlet var conBtn: UIbutton!
@IBOutlet var sendBtn: UIbutton!
@IBOutlet var msgVIEw: UITextVIEw!
let serverPort: UInt16 = 9050
var clIEntSocket: GcdasyncSocket!
var mainQueue = dispatch_get_main_queue()
overrIDe func vIEwDIDLoad() {
super.vIEwDIDLoad()
}
//连接服务器按钮事件
@IBAction func conBtnClick(sender: AnyObject) {
do {
clIEntSocket = GcdasyncSocket()
clIEntSocket.delegate = self
clIEntSocket.delegateQueue = dispatch_get_global_queue(0,0)
try clIEntSocket.connectToHost(serveripinput.text!,onPort: serverPort)
conBtn.backgroundcolor = UIcolor.bluecolor()
}
catch {
print("error")
conBtn.backgroundcolor = UIcolor.redcolor()
}
}
func socket(sock: GcdasyncSocket!,dIDConnectToHost host: String!,port: UInt16) {
print("与服务器连接成功!")
clIEntSocket.readDataWithTimeout(-1,tag: 0)
}
func socketDIDdisconnect(sock: GcdasyncSocket!,withError err: NSError!) {
print("与服务器断开连接")
}
func socket(sock: GcdasyncSocket!,dIDReadData data: NSData!,withTag tag: Int) {
// 1 获取客户的发来的数据 ,把 NSData 转 Nsstring
let readClIEntDataString: Nsstring? = Nsstring(data: data,enCoding: NSUTF8StringEnCoding)
print(readClIEntDataString!)
// 2 主界面ui 显示数据
dispatch_async(mainQueue,{
let showStr: NSMutableString = NSMutableString()
showStr.appendString(self.msgVIEw.text)
showStr.appendString(readClIEntDataString! as String)
showStr.appendString("\n")
self.msgVIEw.text = showStr as String
})
// 3.处理请求,返回数据给客户端 ok
let serviceStr: NSMutableString = NSMutableString()
serviceStr.appendString("ok\n")
clIEntSocket.writeData(serviceStr.dataUsingEnCoding(NSUTF8StringEnCoding),withTimeout: -1,tag: 0)
// 4 每次读完数据后,都要调用一次监听数据的方法
clIEntSocket.readDataWithTimeout(-1,tag: 0)
}
//发送消息按钮事件
@IBAction func sendBtnClick(sender: AnyObject) {
// 1.处理请求,返回数据给客户端 ok
let serviceStr: NSMutableString = NSMutableString()
serviceStr.appendString(self.msginput.text!)
serviceStr.appendString("\n")
clIEntSocket.writeData(serviceStr.dataUsingEnCoding(NSUTF8StringEnCoding),tag: 0)
}
}
总结以上是内存溢出为你收集整理的Swift开发:GCDAsyncSocket通信之TCP 客户端全部内容,希望文章能够帮你解决Swift开发:GCDAsyncSocket通信之TCP 客户端所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)