我正在尝试创建一个TCP侦听器,它接收客户端,使它们保持打开状态,以及何时向数据调用发送回调方法。 我似乎无法找到如何添加回调以及如何保持客户端打开。
我目前的代码如下:
protected void Listener()
{
TcpListener __Listener = new TcpListener(System.Net.IPAddress.Any, Port);
__Listener.Start();
long _TicketNo = 0;
while (IsRunning)
{
client = __Listener.AcceptTcpClient();
_TicketNo++;
RFIDReaderCommunication work = new RFIDReaderCommunication(client);
Trigger(work.process());
System.Threading.Thread.Sleep(100);
}
}
work.process()只是从网络流中读取字节。
但这仅从客户端接收一次数据。 任何人都可以提示如何从这个单一连接多次接收数据吗?
答案 0 :(得分:0)
你的循环中有client
。这意味着只要循环返回到顶部,您就会阻止等待下一个传入连接,然后覆盖tags: true,
width: '100%',
multiple: false,
createTag: function (params) {
return {
id: params.term,
text: params.term,
newTag: true
}
},
insertTag: function (data, tag) {
data.push(tag);
},
ajax: {
delay: 250,
transport: function (params, success, failure) {
success([""]);
if (params.data.term !== undefined) {
axios({
url: vm.$webRoute('ajaxController'),
responseType: 'json',
method: 'post',
timeout: 1000,
data: {
q: params.data.term
}
}).then(function(response){
if (response == -1) {
failure();
}else{
success(response);
}
}).catch(function (error) {
failure();
});
}
},
processResults: function (data) {
var mappedData = [{}];
if (data[0].data !== undefined) {
var mappedData = _.map(data[0].data, function(o){
//process data
return {id: o.member_number, text: text};
})
}else if(data[0].id !== undefined){
mappedData.push({id: data[0].id, text: data[0].text});
}
return {
results: mappedData,
pagination: {
more: false
}
};
}
},
maximumSelectionSize: 1,
变量。
首先,将此行移到循环上方。