socket连接成功后向服务端发送信息失败

我在客户端建立了socket连接:

var net = require('net')
var client = new net.Socket()
client.connect(port, host, () => {
    client.write('test')    //服务端收不到

    setTimeout(() => {
        client.write('test')    //采用这种方式服务端可以收到
    },1000)
})

如果在连接成功后立即发送一条消息,服务端收不到,而如果延时1秒左右,服务端就能收到了,请问这是什么原因,为什么连接成功后立即发送的消息服务端会收不到呢?

阅读 4.1k
1 个回答

net.Socket.connect 只是用来初始化一个连接,相当于开始拨打对方的电话,但是未必已经拨通。
net.Socket.ready 才是对方已经接听电话,因此发送消息最好在这个函数的回调里进行。

推荐问题