我在客户端建立了socket
连接:
var net = require('net')
var client = new net.Socket()
client.connect(port, host, () => {
client.write('test') //服务端收不到
setTimeout(() => {
client.write('test') //采用这种方式服务端可以收到
},1000)
})
如果在连接成功后立即发送一条消息,服务端收不到,而如果延时1秒左右,服务端就能收到了,请问这是什么原因,为什么连接成功后立即发送的消息服务端会收不到呢?
net.Socket.connect 只是用来初始化一个连接,相当于开始拨打对方的电话,但是未必已经拨通。
net.Socket.ready 才是对方已经接听电话,因此发送消息最好在这个函数的回调里进行。