我正在尝试将数据发送到客户端,但它似乎不起作用我没有在客户端接收任何数据。发送数据仅在我使用write
外部回调函数时有效。有人有想法吗?
var server = _net.createServer(function (socket) {
var translater = {
getSocket: function () {
return socket;
}
};
socket.on('data', function (data) {
_db.save_callback(data, function (result) {
if (result) {
var re = translater.getSocket().write("ok");
if (re)
console.log('send ok...');
else console.log('send not_ok...');
}
});
});
socket.on('end', function () {
console.log('client disconnected');
});
//socket.pipe(socket);
});
这是我的客户端代码
protected Void doInBackground(String... params)
{
try
{
InetAddress serverAddress = InetAddress.getByName(Preferences.SERVER_ADDRESS);
_socket = new Socket(serverAddress,
Preferences.SERVER_PORT);
bufferedWriter = new BufferedWriter(new OutputStreamWriter(
_socket.getOutputStream()));
printWriter = new PrintWriter(bufferedWriter,true);
printWriter.println(params[0]);
bufferedReader = new BufferedReader(new InputStreamReader(
_socket.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String response = "";
while((response = bufferedReader.readLine()) != null)
{
stringBuilder.append(response);
Log.i(TAG, "Response: " + response);
}
} catch (Exception e){
e.printStackTrace();
} finally {
printWriter.close();
try {
_socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
printWriter.close();
_socket.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}