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 才是对方已经接听电话,因此发送消息最好在这个函数的回调里进行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题