成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Node.js學(xué)習(xí)之路11——?jiǎng)?chuàng)建TCP客戶端

cnsworder / 2911人閱讀

摘要:創(chuàng)建客戶端對象與服務(wù)器的參數(shù)屬性一樣此時(shí)端口有下邊的幾個(gè)屬性連接另一端所使用的遠(yuǎn)程地址連接另一端所使用的端口號(hào)本地用于建立連接的地址本地用于建立連接的端口號(hào)端口對象可以被用來寫入向客戶端或服務(wù)器端發(fā)送的流數(shù)據(jù)當(dāng)流數(shù)據(jù)被寫入后將立即發(fā)送到客戶

1. 創(chuàng)建TCP客戶端
const net = require("net");
let socket = new net.Socket([options]);

options對象與TCP服務(wù)器的options參數(shù)屬性一樣

socket.connect(port, [host], [connectListener])

socket.connect(path, [connectListener]);
此時(shí)socket端口有下邊的幾個(gè)屬性

remoteAddress:連接另一端所使用的遠(yuǎn)程地址

remotePort:連接另一端所使用的端口號(hào)

localAddress:本地用于建立連接的地址

localPort:本地用于建立連接的端口號(hào)

socket端口對象可以被用來寫入向客戶端或服務(wù)器端發(fā)送的流數(shù)據(jù),當(dāng)流數(shù)據(jù)被寫入后將立即發(fā)送到客戶端或服務(wù)器.當(dāng)需要寫入流數(shù)據(jù)時(shí),使用socket端口對象的write方法

* `socket.write(data, [encoding], [callback]);`該回調(diào)函數(shù)不需要參數(shù)

在一個(gè)快速的網(wǎng)絡(luò)中,當(dāng)數(shù)據(jù)量較少的時(shí)候,Node.js總是將數(shù)據(jù)直接發(fā)送到操作系統(tǒng)專用于發(fā)送數(shù)據(jù)的TCP緩存區(qū)中,然后從該TCP緩存區(qū)中取出數(shù)據(jù)發(fā)送個(gè)對象.在一個(gè)慢速的網(wǎng)絡(luò)中或者需要發(fā)送大量數(shù)據(jù)的時(shí),TCP客戶端或服務(wù)器所發(fā)送的數(shù)據(jù)并不一定會(huì)立即被對方所接收,在這種情況下,Node.js會(huì)將這些數(shù)據(jù)緩存在緩存隊(duì)列中,在對方可以接收數(shù)據(jù)的情況下降緩存隊(duì)列中的數(shù)據(jù)通過TCP緩存區(qū)發(fā)送給對象.socket端口對象的write方法返回一個(gè)布爾類型值,飯改數(shù)據(jù)直接被發(fā)送到TCP緩存區(qū)中時(shí),該返回值為true,當(dāng)數(shù)據(jù)首先被發(fā)送到緩存隊(duì)列時(shí),該返回值為false.當(dāng)返回值為false且TCP緩存區(qū)中的數(shù)據(jù)已全部發(fā)送出去時(shí),觸發(fā)drain事件.

2. 一個(gè)基本的TCP客戶端
// 創(chuàng)建TCP客戶端
const net = require("net");
let client = new net.Socket();
client.setEncoding("utf8");
client.connect("2596", "localhost", function () {
    console.log("已連接到服務(wù)器");
    client.write("hello, this is a tcp server");
    setTimeout(function () {
        client.end("byebye");
    }, 10000)
});
client.on("data", function (data) {
    console.log("已接收服務(wù)器端發(fā)送的數(shù)據(jù):" + data);
});

client.on("error", function (err) {
    console.log(err);
    client.destroy();
});

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92889.html

相關(guān)文章

  • Node.js學(xué)習(xí)之路10——創(chuàng)建TCP服務(wù)器

    摘要:創(chuàng)建服務(wù)器方法返回被創(chuàng)建的服務(wù)器參數(shù)參數(shù)值為一個(gè)對象可以在給兌現(xiàn)各種使用一個(gè)布爾類型的屬性當(dāng)為時(shí)當(dāng)服務(wù)器接收到客戶端發(fā)送的一個(gè)包時(shí)將會(huì)回發(fā)一個(gè)包當(dāng)為時(shí)服務(wù)器接收到客戶端發(fā)送的包時(shí)不回發(fā)包這使得服務(wù)器可以繼續(xù)向客戶端發(fā)送數(shù)據(jù)但是不會(huì)繼續(xù)接收客 1.創(chuàng)建TCP服務(wù)器 let server = net.createServer([options], [connectionListener]...

    LeexMuller 評論0 收藏0
  • Node.js學(xué)習(xí)之路03——Buffer類初識(shí)

    摘要:然而,在處理流或文件流時(shí),必須要處理二進(jìn)制數(shù)據(jù)。因此,在中,定義了一個(gè)類,該類用來創(chuàng)建一個(gè)專門存放二進(jìn)制數(shù)據(jù)的緩存區(qū)。因?yàn)樵谟?jì)算字符串的長度時(shí),以位子作為一個(gè)單位,而在計(jì)算緩存區(qū)的長度時(shí),以字節(jié)作為一個(gè)單位。 buffer對象 1. 什么是buffer 在客戶端Javascript腳本代碼中,對于二進(jìn)制數(shù)據(jù)沒有提供一個(gè)很好的支持。然而,在處理TCP流或文件流時(shí),必須要處理二進(jìn)制數(shù)據(jù)...

    DobbyKim 評論0 收藏0
  • 雙十二大前端工程師讀書清單

    摘要:本文最早為雙十一而作,原標(biāo)題雙大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在上。發(fā)布完本次預(yù)告后,捕捉到了一個(gè)友善的吐槽讀書清單也要收費(fèi)。這本書便從的異步編程講起,幫助我們設(shè)計(jì)快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用,而非簡單的頁面。 本文最早為雙十一而作,原標(biāo)題雙 11 大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進(jìn)行了深入的交流,現(xiàn)免費(fèi)分享到這里,不足之處歡迎指教...

    happen 評論0 收藏0
  • 雙十二大前端工程師讀書清單

    摘要:本文最早為雙十一而作,原標(biāo)題雙大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在上。發(fā)布完本次預(yù)告后,捕捉到了一個(gè)友善的吐槽讀書清單也要收費(fèi)。這本書便從的異步編程講起,幫助我們設(shè)計(jì)快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用,而非簡單的頁面。 本文最早為雙十一而作,原標(biāo)題雙 11 大前端工程師讀書清單,以付費(fèi)的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進(jìn)行了深入的交流,現(xiàn)免費(fèi)分享到這里,不足之處歡迎指教...

    余學(xué)文 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<