抱歉,我的第一个问题是错误的;我想问的是 Swift Socket 而不是 Java
我正在尝试编写一个 Swift 客户端应用程序并连接到 Java 服务器。
我不知道如何在 Swift 客户端中使用 Socket。
我想要像下面的Java函数(out.println和in.readline)
THanks
Java 代码主要取自 Oracle 示例。
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine;
out.println("Hello World");
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
System.out.flush();
out.println("test");
if (inputLine.equals("Bye")) {
break;
}
}
out.close();
in.close();
socket.close();
抱歉第一次输入错误问题
你能告诉我在官方网站哪里可以找到如何使用Swift实现吗?或者教我如何实施?
非常感谢>
我的快速代码如下,我不知道如何获取字符串形式的readline(inputStream)。
我写
outputstream.write(queryString,maxLength: queryString.characters.count)
并尝试发送到服务器。
但是服务器总是收到sendString中丢失的一些内容。
我的服务器在 Android 中使用 Socket 没问题
let addr = "xxooo"
let port = 10009
var inp : NSInputStream?
var out : NSOutputStream?
NSStream.getStreamsToHostWithName(addr, port: port, inputStream: &inp, outputStream: &out)
print("test1")
let inputstream = inp!
let outputstream = out!
inputstream.open()
outputstream.open()
print("test2 queryString=\(queryString)")
outputstream.write(queryString,maxLength:queryString.characters.count)
print("test3 \(queryString.characters.count)")
let buffersize = 1024
var buffer = Array<UInt8>(count : buffersize,repeatedValue :0)
let bytesRead = inputstream.read(&buffer, maxLength: buffersize)
var getString : NSString?
print("test4")
if(bytesRead>0){
getString = NSString(bytes: &buffer, length: bytesRead, encoding: NSUTF8StringEncoding)
print("getString = \(getString!)")
}else{
}
inputstream.close()
outputstream.close()