摘要:創(chuàng)建客戶端對象與服務(wù)器的參數(shù)屬性一樣此時端口有下邊的幾個屬性連接另一端所使用的遠程地址連接另一端所使用的端口號本地用于建立連接的地址本地用于建立連接的端口號端口對象可以被用來寫入向客戶端或服務(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]);
此時socket端口有下邊的幾個屬性
remoteAddress:連接另一端所使用的遠程地址
remotePort:連接另一端所使用的端口號
localAddress:本地用于建立連接的地址
localPort:本地用于建立連接的端口號
socket端口對象可以被用來寫入向客戶端或服務(wù)器端發(fā)送的流數(shù)據(jù),當(dāng)流數(shù)據(jù)被寫入后將立即發(fā)送到客戶端或服務(wù)器.當(dāng)需要寫入流數(shù)據(jù)時,使用socket端口對象的write方法
* `socket.write(data, [encoding], [callback]);`該回調(diào)函數(shù)不需要參數(shù)
在一個快速的網(wǎng)絡(luò)中,當(dāng)數(shù)據(jù)量較少的時候,Node.js總是將數(shù)據(jù)直接發(fā)送到操作系統(tǒng)專用于發(fā)送數(shù)據(jù)的TCP緩存區(qū)中,然后從該TCP緩存區(qū)中取出數(shù)據(jù)發(fā)送個對象.在一個慢速的網(wǎng)絡(luò)中或者需要發(fā)送大量數(shù)據(jù)的時,TCP客戶端或服務(wù)器所發(fā)送的數(shù)據(jù)并不一定會立即被對方所接收,在這種情況下,Node.js會將這些數(shù)據(jù)緩存在緩存隊列中,在對方可以接收數(shù)據(jù)的情況下降緩存隊列中的數(shù)據(jù)通過TCP緩存區(qū)發(fā)送給對象.socket端口對象的write方法返回一個布爾類型值,飯改數(shù)據(jù)直接被發(fā)送到TCP緩存區(qū)中時,該返回值為true,當(dāng)數(shù)據(jù)首先被發(fā)送到緩存隊列時,該返回值為false.當(dāng)返回值為false且TCP緩存區(qū)中的數(shù)據(jù)已全部發(fā)送出去時,觸發(fā)drain事件.
2. 一個基本的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://www.ezyhdfw.cn/yun/92889.html
摘要:創(chuàng)建服務(wù)器方法返回被創(chuàng)建的服務(wù)器參數(shù)參數(shù)值為一個對象可以在給兌現(xiàn)各種使用一個布爾類型的屬性當(dāng)為時當(dāng)服務(wù)器接收到客戶端發(fā)送的一個包時將會回發(fā)一個包當(dāng)為時服務(wù)器接收到客戶端發(fā)送的包時不回發(fā)包這使得服務(wù)器可以繼續(xù)向客戶端發(fā)送數(shù)據(jù)但是不會繼續(xù)接收客 1.創(chuàng)建TCP服務(wù)器 let server = net.createServer([options], [connectionListener]...
摘要:然而,在處理流或文件流時,必須要處理二進制數(shù)據(jù)。因此,在中,定義了一個類,該類用來創(chuàng)建一個專門存放二進制數(shù)據(jù)的緩存區(qū)。因為在計算字符串的長度時,以位子作為一個單位,而在計算緩存區(qū)的長度時,以字節(jié)作為一個單位。 buffer對象 1. 什么是buffer 在客戶端Javascript腳本代碼中,對于二進制數(shù)據(jù)沒有提供一個很好的支持。然而,在處理TCP流或文件流時,必須要處理二進制數(shù)據(jù)...
摘要:本文最早為雙十一而作,原標(biāo)題雙大前端工程師讀書清單,以付費的形式發(fā)布在上。發(fā)布完本次預(yù)告后,捕捉到了一個友善的吐槽讀書清單也要收費。這本書便從的異步編程講起,幫助我們設(shè)計快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用,而非簡單的頁面。 本文最早為雙十一而作,原標(biāo)題雙 11 大前端工程師讀書清單,以付費的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進行了深入的交流,現(xiàn)免費分享到這里,不足之處歡迎指教...
摘要:本文最早為雙十一而作,原標(biāo)題雙大前端工程師讀書清單,以付費的形式發(fā)布在上。發(fā)布完本次預(yù)告后,捕捉到了一個友善的吐槽讀書清單也要收費。這本書便從的異步編程講起,幫助我們設(shè)計快速響應(yīng)的網(wǎng)絡(luò)應(yīng)用,而非簡單的頁面。 本文最早為雙十一而作,原標(biāo)題雙 11 大前端工程師讀書清單,以付費的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進行了深入的交流,現(xiàn)免費分享到這里,不足之處歡迎指教...
閱讀 1181·2021-11-18 10:07
閱讀 2615·2021-10-14 09:42
閱讀 5697·2021-09-22 15:45
閱讀 748·2021-09-03 10:29
閱讀 3658·2021-08-31 14:28
閱讀 2061·2019-08-30 15:56
閱讀 3192·2019-08-30 15:54
閱讀 1163·2019-08-29 11:32